class Kafo::Param
Attributes
condition[RW]
default[RW]
doc[RW]
groups[W]
module[R]
name[R]
value_set[RW]
Public Class Methods
new(builder, name)
click to toggle source
# File lib/kafo/param.rb, line 9 def initialize(builder, name) @name = name @module = builder end
Public Instance Methods
<=>(o)
click to toggle source
# File lib/kafo/param.rb, line 100 def <=> o unless @module.configuration.app[:no_prefix] r = self.module_name <=> o.module_name return r unless r == 0 end self.name <=> o.name end
condition_value()
click to toggle source
# File lib/kafo/param.rb, line 112 def condition_value value.to_s end
dump_default()
click to toggle source
# File lib/kafo/param.rb, line 28 def dump_default default end
groups()
click to toggle source
# File lib/kafo/param.rb, line 14 def groups @groups || [] end
module_name()
click to toggle source
# File lib/kafo/param.rb, line 32 def module_name self.module.name end
multivalued?()
click to toggle source
To be overwritten in children
# File lib/kafo/param.rb, line 96 def multivalued? false end
set_default(defaults)
click to toggle source
# File lib/kafo/param.rb, line 40 def set_default(defaults) if default == 'UNSET' self.value = nil else if defaults.has_key?(default) value = defaults[default] case value when :undef # value can be set to :undef if value is not defined # (e.g. puppetmaster = $::puppetmaster which is not defined yet) self.value = nil when :undefined # in puppet 2.7 :undefined means that it's param which value is # not set by another parameter (e.g. foreman_group = 'something') # which means, default is sensible unlike dumped default # newer puppet has default dump in format 'value' => 'value' so # it's handled correctly by else branch self.value = self.default else self.value = value end # if we don't have default value from dump (can happen for modules added from hooks) # we fallback to their own default values which must be sensible else self.value = self.default end end end
set_value_by_config(config)
click to toggle source
# File lib/kafo/param.rb, line 69 def set_value_by_config(config) base = config[self.module.class_name] self.value = base[name] if base.has_key?(name) end
to_s()
click to toggle source
# File lib/kafo/param.rb, line 36 def to_s "#<#{self.class}:#{self.object_id} @name=#{name.inspect} @default=#{default.inspect} @value=#{value.inspect}>" end
valid?()
click to toggle source
# File lib/kafo/param.rb, line 74 def valid? validations = self.module.validations(self) # we get validations that can also run on other arguments, we need to take only current param # also we want to clone validations so we don't interfere validations.map! do |v| v = v.clone if v.name == 'validate_re' # validate_re does not take more variables as arguments, instead we need to pass all arguments args = v.arguments else args = v.arguments.select { |a| a.to_s == "$#{self.name}" } end v.arguments = Puppet::Parser::AST::ASTArray.new :children => args v end validator = Validator.new([self]) validations.map! { |v| v.evaluate(validator) } validations.all? end
value()
click to toggle source
we use @value_set flag because even nil can be valid value
# File lib/kafo/param.rb, line 19 def value @value_set ? @value : default end
value=(value)
click to toggle source
# File lib/kafo/param.rb, line 23 def value=(value) @value_set = true @value = value == 'UNDEF' ? nil : value end
visible?(context = [])
click to toggle source
# File lib/kafo/param.rb, line 108 def visible?(context = []) condition.nil? || condition.empty? ? true : evaluate_condition(context) end
Private Instance Methods
evaluate_condition(context = [])
click to toggle source
# File lib/kafo/param.rb, line 118 def evaluate_condition(context = []) Condition.new(condition, context).evaluate end