Module: Moxie::Finders

Included in:
Application, Environment
Defined in:
lib/moxie/finders.rb

Instance Method Summary collapse

Instance Method Details

#allObject



12
13
14
# File 'lib/moxie/finders.rb', line 12

def all
  ids.map { |id| find(id) }
end

#find(*args) ⇒ Object



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

def find(*args)
  if args.first.is_a? Array
    find_multiple(*args)
  else
    find_one(args.first)
  end
end

#find_multiple(ids) ⇒ Object



30
31
32
# File 'lib/moxie/finders.rb', line 30

def find_multiple(ids)
  ids.map { |id| find_one(id) }
end

#find_one(id) ⇒ Object

Raises:



24
25
26
27
28
# File 'lib/moxie/finders.rb', line 24

def find_one(id)
  hash = Store.object("#{key}:#{id}").to_hash
  raise NotFound, "Could not find #{self.name.split(":").last.downcase} '#{id}'" if hash.empty?
  new(hash)
end

#idsObject



8
9
10
# File 'lib/moxie/finders.rb', line 8

def ids
  Store.set("#{key}s").to_a
end

#key(k = nil) ⇒ Object



3
4
5
6
# File 'lib/moxie/finders.rb', line 3

def key(k=nil)
  @key = k unless k.nil?
  return @key
end