# File lib/deltacloud/hardware_profile.rb, line 136 def initialize(name,&block) @properties = {} @name = name instance_eval &block if block_given? end
# File lib/deltacloud/hardware_profile.rb, line 118 def property(prop) define_method(prop) do |*args| values, opts, *ignored = *args instvar = :"@#{prop}" unless values.nil? @properties[prop] = Property.new(prop, values, opts || {}) end @properties[prop] end end
# File lib/deltacloud/hardware_profile.rb, line 154 def default?(prop, v) p = @properties[prop.to_sym] p && p.default.to_s == v end
# File lib/deltacloud/hardware_profile.rb, line 142 def each_property(&block) @properties.each_value { |prop| yield prop } end
# File lib/deltacloud/hardware_profile.rb, line 181 def include?(prop, v) p = @properties[prop] p.nil? || p.include?(v) end
# File lib/deltacloud/hardware_profile.rb, line 186 def params @properties.values.inject([]) { |m, prop| m << prop.to_param }.compact end
# File lib/deltacloud/hardware_profile.rb, line 146 def properties @properties.values end
# File lib/deltacloud/hardware_profile.rb, line 150 def property(name) @properties[name.to_sym] end
# File lib/deltacloud/hardware_profile.rb, line 159 def to_hash props = [] self.each_property do |p| if p.kind.eql? :fixed props << { :kind => p.kind, :value => p.value, :name => p.name, :unit => p.unit } else param = { :operation => "create", :method => "post", :name => p.name } if p.kind.eql? :range param[:range] = { :first => p.first, :last => p.last } elsif p.kind.eql? :enum param[:enum] = p.values.collect { |v| { :entry => v } } end param props << { :kind => p.kind, :value => p.default, :name => p.name, :unit => p.unit, :param => param } end end { :id => self.name, :properties => props } end
Generated with the Darkfish Rdoc Generator 2.