Parent

Class/Module Index [+]

Quicksearch

Deltacloud::HardwareProfile

Constants

UNITS

Attributes

name[R]

Public Class Methods

new(name,&block) click to toggle source
# File lib/deltacloud/hardware_profile.rb, line 136
def initialize(name,&block)
  @properties   = {}
  @name         = name
  instance_eval &block if block_given?
end
property(prop) click to toggle source
# 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
unit(name) click to toggle source
# File lib/deltacloud/hardware_profile.rb, line 27
def self.unit(name)
  UNITS[name]
end

Public Instance Methods

default?(prop, v) click to toggle source
# File lib/deltacloud/hardware_profile.rb, line 154
def default?(prop, v)
  p = @properties[prop.to_sym]
  p && p.default.to_s == v
end
each_property(&block) click to toggle source
# File lib/deltacloud/hardware_profile.rb, line 142
def each_property(&block)
  @properties.each_value { |prop| yield prop }
end
include?(prop, v) click to toggle source
# File lib/deltacloud/hardware_profile.rb, line 181
def include?(prop, v)
  p = @properties[prop]
  p.nil? || p.include?(v)
end
params() click to toggle source
# File lib/deltacloud/hardware_profile.rb, line 186
def params
  @properties.values.inject([]) { |m, prop|
    m << prop.to_param
  }.compact
end
properties() click to toggle source
# File lib/deltacloud/hardware_profile.rb, line 146
def properties
  @properties.values
end
property(name) click to toggle source
# File lib/deltacloud/hardware_profile.rb, line 150
def property(name)
  @properties[name.to_sym]
end
to_hash() click to toggle source
# 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

[Validate]

Generated with the Darkfish Rdoc Generator 2.