Module: Fog::XenServer::Compute::Models::InstanceMethods
- Included in:
- Model, Server
- Defined in:
- lib/fog/xenserver/compute/models/instance_methods.rb
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args) ⇒ Object
36
37
38
39
40
41
42
43
44
|
# File 'lib/fog/xenserver/compute/models/instance_methods.rb', line 36
def method_missing(method_name, *args)
if service.respond_to?("#{method_name}_#{provider_class.downcase}")
result = service.send("#{method_name}_#{provider_class.downcase}", reference, *args)
reload
result
else
super
end
end
|
Instance Method Details
#collection ⇒ Object
10
11
12
|
# File 'lib/fog/xenserver/compute/models/instance_methods.rb', line 10
def collection
service.send(self.class.collection_name)
end
|
#destroy ⇒ Object
30
31
32
33
34
|
# File 'lib/fog/xenserver/compute/models/instance_methods.rb', line 30
def destroy
requires :reference
service.send(:destroy_record, reference, provider_class)
true
end
|
#provider_class ⇒ Object
6
7
8
|
# File 'lib/fog/xenserver/compute/models/instance_methods.rb', line 6
def provider_class
self.class.provider_class
end
|
#require_creation_attributes ⇒ Object
14
15
16
|
# File 'lib/fog/xenserver/compute/models/instance_methods.rb', line 14
def require_creation_attributes
requires *self.class.instance_variable_get("@require_before_save")
end
|
#respond_to?(method_name, include_private = false) ⇒ Boolean
46
47
48
49
|
# File 'lib/fog/xenserver/compute/models/instance_methods.rb', line 46
def respond_to?(method_name, include_private = false)
return true if service.respond_to?("#{method_name}_#{provider_class.downcase}")
super
end
|
#save(extra_params = {}) ⇒ Object
22
23
24
25
26
27
28
|
# File 'lib/fog/xenserver/compute/models/instance_methods.rb', line 22
def save( = {})
require_creation_attributes
attrs = all_associations_and_attributes.reject { |_key, value| value.nil? }
ref = service.send("create_#{provider_class.downcase}", attrs, )
merge_attributes collection.get(ref).attributes
true
end
|
#set_attribute(name, *val) ⇒ Object
18
19
20
|
# File 'lib/fog/xenserver/compute/models/instance_methods.rb', line 18
def set_attribute(name, *val)
service.set_attribute(provider_class, reference, name, *val)
end
|