Module: Tire::Model::Persistence::Finders::ClassMethods

Defined in:
lib/tire/model/persistence/finders.rb

Instance Method Summary collapse

Instance Method Details

#allObject


35
36
37
38
39
# File 'lib/tire/model/persistence/finders.rb', line 35

def all
  # TODO: Options like `sort`; Possibly `filters`
  s = Tire::Search::Search.new(index.name, :type => document_type, :wrapper => self).query { all }
  s.version(true).results
end

#find(*args) ⇒ Object


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
  # TODO: Options like `sort`
  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

#firstObject


41
42
43
44
45
# File 'lib/tire/model/persistence/finders.rb', line 41

def first
  # TODO: Options like `sort`; Possibly `filters`
  s = Tire::Search::Search.new(index.name, :type => document_type, :wrapper => self).query { all }.size(1)
  s.version(true).results.first
end