Module: Pec::Query

Instance Method Summary collapse

Instance Method Details

#fetch(name) ⇒ Object



22
23
24
# File 'lib/pec/query.rb', line 22

def fetch(name)
  list.find {|s| s["name"] == name}
end

#get_adapter ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/pec/query.rb', line 5

def get_adapter
  case
  when self.class.name.include?('Network')
    Fog::Network[:openstack]
  when self.class.name.include?('Compute')
    Fog::Compute[:openstack]
  else
    raise
  end
end

#get_ref(name) ⇒ Object

Raises:



26
27
28
29
30
31
# File 'lib/pec/query.rb', line 26

def get_ref(name)
  class_name = self.class.name.demodulize.downcase
  response = fetch(name)
  raise(Pec::Errors::Query, "#{class_name}:#{name} ref is not fond!") unless response
  response["links"][0]["href"]
end

#list ⇒ Object



16
17
18
19
20
# File 'lib/pec/query.rb', line 16

def list
  name = self.class.name.demodulize.downcase+"s"
  @_list ||= Hash.new
  @_list[name] ||= get_adapter.send("list_#{name}").data[:body][name]
end