Module: Toy::Querying::ClassMethods

Defined in:
lib/toy/querying.rb

Instance Method Summary collapse

Instance Method Details

#get_or_create(id) ⇒ Object



37
38
39
# File 'lib/toy/querying.rb', line 37

def get_or_create(id)
  get(id) || create(:id => id)
end

#get_or_new(id) ⇒ Object



33
34
35
# File 'lib/toy/querying.rb', line 33

def get_or_new(id)
  get(id) || new(:id => id)
end

#key?(id, options = nil) ⇒ Boolean Also known as: has_key?

Returns:



41
42
43
# File 'lib/toy/querying.rb', line 41

def key?(id, options = nil)
  adapter.key?(id, options)
end

#load(id, attrs) ⇒ Object



46
47
48
49
50
# File 'lib/toy/querying.rb', line 46

def load(id, attrs)
  attrs ||= {}
  instance = constant_from_attrs(attrs).allocate
  instance.initialize_from_database(attrs.update('id' => id))
end

#read(id, options = nil) ⇒ Object Also known as: get, find



6
7
8
9
10
# File 'lib/toy/querying.rb', line 6

def read(id, options = nil)
  if (attrs = adapter.read(id, options))
    load(id, attrs)
  end
end

#read!(id, options = nil) ⇒ Object Also known as: get!, find!



15
16
17
# File 'lib/toy/querying.rb', line 15

def read!(id, options = nil)
  get(id, options) || raise(Toy::NotFound.new(id))
end

#read_multiple(ids, options = nil) ⇒ Object Also known as: get_multiple, find_multiple



22
23
24
25
26
27
28
# File 'lib/toy/querying.rb', line 22

def read_multiple(ids, options = nil)
  result = adapter.read_multiple(ids, options)
  result.each do |id, attrs|
    result[id] = attrs.nil? ? nil : load(id, attrs)
  end
  result
end