Module: Toy::Querying::ClassMethods

Defined in:
lib/toy/querying.rb

Instance Method Summary collapse

Instance Method Details

#get(id) ⇒ Object



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

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

#get!(id) ⇒ Object



12
13
14
# File 'lib/toy/querying.rb', line 12

def get!(id)
  get(id) || raise(Toy::NotFound.new(id))
end

#get_multiple(*ids) ⇒ Object Also known as: get_multi



16
17
18
19
20
21
22
# File 'lib/toy/querying.rb', line 16

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

#get_or_create(id) ⇒ Object



30
31
32
# File 'lib/toy/querying.rb', line 30

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

#get_or_new(id) ⇒ Object



26
27
28
# File 'lib/toy/querying.rb', line 26

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

#key?(id) ⇒ Boolean Also known as: has_key?

Returns:



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

def key?(id)
  adapter.key?(id)
end

#load(id, attrs) ⇒ Object



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

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