Sha256: 658de53bc531a36f4982bff8fde2fdd27f381b3b7206c6757140bc41d39a1694
Contents?: true
Size: 1.57 KB
Versions: 7
Compression:
Stored size: 1.57 KB
Contents
module Fog module Compute class XenServer module Models module InstanceMethods def provider_class self.class.provider_class end def collection service.send(self.class.collection_name) end def require_creation_attributes requires *self.class.instance_variable_get("@require_before_save") end def set_attribute(name, *val) service.set_attribute(provider_class, reference, name, *val) end def save(extra_params = {}) require_creation_attributes attrs = all_associations_and_attributes.reject { |_key, value| value.nil? } ref = service.send("create_#{provider_class.downcase}", attrs, extra_params) merge_attributes collection.get(ref).attributes true end def destroy requires :reference service.send(:destroy_record, reference, provider_class) true end 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 def respond_to?(method_name, include_private = false) return true if service.respond_to?("#{method_name}_#{provider_class.downcase}") super end end end end end end
Version data entries
7 entries across 5 versions & 2 rubygems