class Puppet::ResourceApi::Property

Class containing property functionality for ResourceApi.

Public Class Methods

new(type_name, data_type, attribute_name, resource_hash) click to toggle source

This initialize takes arguments and sets up new property. @param type_name the name of the Puppet Type @param data_type the data type of property instance @param attribute_name the name of attribue of the property @param resource_hash the resource hash instance which is passed to the parent class.

Calls superclass method
# File lib/puppet/resource_api/property.rb, line 14
def initialize(type_name, data_type, attribute_name, resource_hash)
  @type_name = type_name
  @data_type = data_type
  @attribute_name = attribute_name
  # Define class method insync?(is) if the name is :ensure
  def_insync? if @attribute_name == :ensure && self.class != Puppet::ResourceApi::Property
  # Pass resource to parent Puppet class.
  super(resource_hash)
end

Public Instance Methods

call_provider(_value) click to toggle source

stop puppet from trying to call into the provider when no pre-defined values have been specified “This is not the provider you are looking for.” – Obi-Wan Kaniesobi.

# File lib/puppet/resource_api/property.rb, line 85
def call_provider(_value); end
def_insync?() click to toggle source

method overloaded only for the :ensure property, add option to check if the #rs_value matches is. Only if the class is child of Puppet::ResourceApi::Property.

# File lib/puppet/resource_api/property.rb, line 72
def def_insync?
  define_singleton_method(:insync?) { |is| rs_value.to_s == is.to_s }
end
rs_value() click to toggle source

used internally @returns the final mungified value of this property

# File lib/puppet/resource_api/property.rb, line 65
def rs_value
  @should ? @should.first : @should
end
should() click to toggle source

This method returns value of the property. @return [type] the property value

# File lib/puppet/resource_api/property.rb, line 26
def should
  if @attribute_name == :ensure && rs_value.is_a?(String)
    rs_value.to_sym
  elsif rs_value == false
    # work around https://tickets.puppetlabs.com/browse/PUP-2368
    :false # rubocop:disable Lint/BooleanSymbol
  elsif rs_value == true
    # work around https://tickets.puppetlabs.com/browse/PUP-2368
    :true # rubocop:disable Lint/BooleanSymbol
  else
    rs_value
  end
end
should=(value) click to toggle source

This method sets and returns value of the property and sets @shouldorig. @param value the value to be set and clean @return [type] the property value

# File lib/puppet/resource_api/property.rb, line 43
def should=(value)
  @shouldorig = value

  if @attribute_name == :ensure
    value = value.to_s
  end

  # Puppet requires the @should value to always be stored as an array. We do not use this
  # for anything else
  # @see Puppet::Property.should=(value)
  @should = [
    Puppet::ResourceApi::DataTypeHandling.mungify(
      @data_type,
      value,
      "#{@type_name}.#{@attribute_name}",
      Puppet::ResourceApi.caller_is_resource_app?,
    ),
  ]
end