Class: Ocs::Resources::Base
- Inherits:
-
Object
- Object
- Ocs::Resources::Base
show all
- Includes:
- DynamicDefiners
- Defined in:
- lib/ocs/resources/base.rb
Direct Known Subclasses
Account, Address, AffinityGroup, AsyncJob, DiskOffering, Domain, Group, Host, Iso, Network, Nic, OsType, ResourceDetail, SecurityGroup, ServiceOffering, SshKeyPair, Tag, Template, VirtualMachine, Zone
Constant Summary
collapse
- BOOLEAN =
[TrueClass, FalseClass].freeze
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(client, raw_hash = {}) ⇒ Base
Returns a new instance of Base.
72
73
74
75
76
|
# File 'lib/ocs/resources/base.rb', line 72
def initialize(client, raw_hash = {})
@client = client
@raw_hash = raw_hash
update_attributes!(raw_hash)
end
|
Instance Attribute Details
#client ⇒ Object
Returns the value of attribute client.
68
69
70
|
# File 'lib/ocs/resources/base.rb', line 68
def client
@client
end
|
#error ⇒ Object
Returns the value of attribute error.
68
69
70
|
# File 'lib/ocs/resources/base.rb', line 68
def error
@error
end
|
Class Method Details
.all(client) ⇒ Object
12
13
14
|
# File 'lib/ocs/resources/base.rb', line 12
def all(client)
list(client)
end
|
.downcased_name ⇒ Object
16
17
18
|
# File 'lib/ocs/resources/base.rb', line 16
def downcased_name
name.downcase
end
|
.find(client, conditions = {}, parameters = {}) ⇒ Object
20
21
22
|
# File 'lib/ocs/resources/base.rb', line 20
def find(client, conditions = {}, parameters = {})
where(client, conditions, parameters).first
end
|
.inherited(sub_class) ⇒ Object
24
25
26
|
# File 'lib/ocs/resources/base.rb', line 24
def inherited(sub_class)
sub_class.delegations = {}
end
|
.list(client, parameters = {}) ⇒ Object
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/ocs/resources/base.rb', line 40
def list(client, parameters = {})
response = client.call("list#{pluralized_name}", parameters)
if response.empty?
[]
else
response[downcased_name].map do |attributes|
new(client, attributes)
end
end
end
|
.name ⇒ Object
28
29
30
|
# File 'lib/ocs/resources/base.rb', line 28
def name
to_s.split(/::/).last
end
|
.pluralized_name ⇒ Object
32
33
34
|
# File 'lib/ocs/resources/base.rb', line 32
def pluralized_name
name.pluralize
end
|
.underscored_name ⇒ Object
36
37
38
|
# File 'lib/ocs/resources/base.rb', line 36
def underscored_name
name.underscore
end
|
.where(client, conditions = {}, parameters = {}) ⇒ Object
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/ocs/resources/base.rb', line 51
def where(client, conditions = {}, parameters = {})
list(client, parameters).select do |instance|
conditions.all? do |attribute, condition|
value = instance.public_send(attribute)
case condition
when Regexp
condition =~ value
when Range
condition.include?(value)
else
condition == value
end
end
end
end
|
Instance Method Details
#reload! ⇒ Object
78
79
80
81
82
83
84
|
# File 'lib/ocs/resources/base.rb', line 78
def reload!
response = client.call("list#{self.class.pluralized_name}", id: id)[self.class.downcased_name]
if response && !response.empty?
update_attributes!(response.first)
end
self
end
|