12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/tire/model/persistence/finders.rb', line 12
def find *args
options = args.pop if args.last.is_a?(Hash)
args.flatten!
if args.size > 1
Tire::Search::Search.new(index.name, :wrapper => self) do |search|
search.query do |query|
query.ids(args, document_type)
end
search.size args.size
end.results
else
case args = args.pop
when Fixnum, String
index.retrieve document_type, args, :wrapper => self
when :all, :first
send(args)
else
raise ArgumentError, "Please pass either ID as Fixnum or String, or :all, :first as an argument"
end
end
end
|