O gem has_finder foi incorporado ao Rails, mas com um nome diferente: named_scope.
Uma documentação mais completa sobre o gem original você pode encontrar neste endereço: clique aqui.
Para entender o que isto acrescenta de novo ao Rails veja os exemplos abaixo:
class Article < ActiveRecord::Base
named_scope :published, :conditions => {:published => true}
named_scope :containing_the_letter_a, :conditions => "body LIKE '%a%'"
end
Article.published.paginate(:page => 1)
Article.published.containing_the_letter_a.count
Article.containing_the_letter_a.find(:first)
Article.containing_the_letter_a.find(:all, :conditions => {...})
Ao invés de criar um método published para retornar os posts já publicados, estou usando o named_scope para fazer isto.
Mas o método é um pouco mais robusto do que isto. Veja mais alguns exemplos de como ele pode ser usado:
named_scope :written_before, lambda { |time|
{ :conditions => ['written_on < ?', time] }
}
named_scope :anonymous_extension do
def one
1
end
end
named_scope :named_extension, :extend => NamedExtension
named_scope :multiple_extensions, :extend => [MultipleExtensionTwo, MultipleExtensionOne]
Carlos,
Nao entendi seus dois segundos exemplos.
named_scope :named_extension, :extend => NamedExtension
Great blog!
Abs.
Peter
NamedExtension seria um módulo.