Module: Euca::Model::ClassMethods

Defined in:
lib/euca/model.rb

Instance Method Summary collapse

Instance Method Details

#allObject



15
16
17
# File 'lib/euca/model.rb', line 15

def all
  describe
end

#describe(*args) ⇒ Object



34
35
36
# File 'lib/euca/model.rb', line 34

def describe *args
  euca("describe-#{self.describer}",*args)
end

#describerObject



38
# File 'lib/euca/model.rb', line 38

def describer; @describer ||= self::TYPE_ID.tableize; end

#euca(api, *args) ⇒ Object



40
41
42
# File 'lib/euca/model.rb', line 40

def euca api, *args
  self.wrapper.run api, *args
end

#find(id) ⇒ Object



30
31
32
# File 'lib/euca/model.rb', line 30

def find id
  describe(id).first
end

#find_by(query = {}) ⇒ Object



26
27
28
# File 'lib/euca/model.rb', line 26

def find_by query = {}
  where(query).first
end

#where(query = {}) ⇒ Object



19
20
21
22
23
24
# File 'lib/euca/model.rb', line 19

def where query = {}
  all.select{ |m| 
    s = m.select{ |k,v| query.keys.include?(k.to_sym) }
    s.values.sort == query.values.sort 
  }
end

#wrapperObject



11
12
13
# File 'lib/euca/model.rb', line 11

def wrapper
  @wrapper ||= Wrapper.new(self::TYPE_ID, self::TYPE_ATTRS)
end