class Chef::Resource::DscResource

Public Class Methods

new(name, run_context) click to toggle source
Calls superclass method Chef::Resource.new
# File lib/chef/resource/dsc_resource.rb, line 55
def initialize(name, run_context)
  super
  @properties = ToTextHash.new
  @resource = nil
end

Public Instance Methods

module_name(value = nil) click to toggle source
# File lib/chef/resource/dsc_resource.rb, line 69
def module_name(value = nil)
  if value
    @module_name = value
  else
    @module_name
  end
end
properties() click to toggle source
# File lib/chef/resource/dsc_resource.rb, line 91
def properties
  @properties.reduce({}) do |memo, (k, v)|
    memo[k] = value_of(v)
    memo
  end
end
property(property_name, value = nil) click to toggle source
# File lib/chef/resource/dsc_resource.rb, line 79
def property(property_name, value = nil)
  if not property_name.is_a?(Symbol)
    raise TypeError, "A property name of type Symbol must be specified, '#{property_name}' of type #{property_name.class} was given"
  end

  if value.nil?
    value_of(@properties[property_name])
  else
    @properties[property_name] = value
  end
end
resource(value = nil) click to toggle source
# File lib/chef/resource/dsc_resource.rb, line 61
def resource(value = nil)
  if value
    @resource = value
  else
    @resource
  end
end

Private Instance Methods

value_of(value) click to toggle source
# File lib/chef/resource/dsc_resource.rb, line 108
def value_of(value)
  if value.is_a?(DelayedEvaluator)
    value.call
  else
    value
  end
end