Class: Fog::Vcloud::Collection
Direct Known Subclasses
Vdcs
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Collection
#_dump, _load, aliases, attribute, attributes, #attributes, #connection, #connection=, #create, #initialize, #inspect, #load, #merge_attributes, #model, model, #new, #table, #to_json
Class Method Details
.all_request(all_request = nil) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/fog/vcloud/collection.rb', line 14
def all_request(all_request=nil)
unless all_request
@all_request
else
@all_request = all_request
class_eval <<-EOS, __FILE__, __LINE__
def all
data = self.class.all_request.call(self).body.links.select do |link|
link.type == self.class.vcloud_type
end.map { |link| {:href => link.href, :name => link.name } }
load(data)
end
EOS
end
end
|
.get_request(get_request = nil) ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/fog/vcloud/collection.rb', line 38
def get_request(get_request=nil)
unless get_request
@get_request
else
@get_request = get_request
class_eval <<-EOS, __FILE__, __LINE__
def get(uri)
item = new(:href => uri)
item.reload
end
def get_raw(uri)
connection.#{@get_request}(uri)
end
EOS
end
end
|
.inherited(klass) ⇒ Object
7
8
9
10
11
12
|
# File 'lib/fog/vcloud/collection.rb', line 7
def inherited(klass)
klass.instance_variable_set(:@model, @model)
klass.all_request @all_request
klass.vcloud_type @vcloud_type
klass.get_request @get_request
end
|
.vcloud_type(vcloud_type = nil) ⇒ Object
30
31
32
33
34
35
36
|
# File 'lib/fog/vcloud/collection.rb', line 30
def vcloud_type(vcloud_type=nil)
unless vcloud_type
@vcloud_type
else
@vcloud_type = vcloud_type
end
end
|
Instance Method Details
#[](index) ⇒ Object
56
57
58
|
# File 'lib/fog/vcloud/collection.rb', line 56
def [](index)
self.slice(index).reload
end
|
#reload ⇒ Object
60
61
62
|
# File 'lib/fog/vcloud/collection.rb', line 60
def reload
self.all
end
|