Class: Param
- Inherits:
-
Object
- Object
- Param
- Defined in:
- lib/kafo/param.rb
Direct Known Subclasses
Params::Array, Params::Boolean, Params::Integer, Params::Password, Params::String
Instance Attribute Summary collapse
-
#default ⇒ Object
Returns the value of attribute default.
-
#doc ⇒ Object
Returns the value of attribute doc.
-
#module ⇒ Object
readonly
Returns the value of attribute module.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#value_set ⇒ Object
Returns the value of attribute value_set.
Instance Method Summary collapse
-
#initialize(builder, name) ⇒ Param
constructor
A new instance of Param.
- #module_name ⇒ Object
-
#multivalued? ⇒ Boolean
To be overwritten in children.
- #set_default(defaults) ⇒ Object
- #set_value_by_config(config) ⇒ Object
- #to_s ⇒ Object
- #valid? ⇒ Boolean
-
#value ⇒ Object
we use @value_set flag because even nil can be valid value.
- #value=(value) ⇒ Object
Constructor Details
#initialize(builder, name) ⇒ Param
Returns a new instance of Param.
6 7 8 9 |
# File 'lib/kafo/param.rb', line 6 def initialize(builder, name) @name = name @module = builder end |
Instance Attribute Details
#default ⇒ Object
Returns the value of attribute default.
4 5 6 |
# File 'lib/kafo/param.rb', line 4 def default @default end |
#doc ⇒ Object
Returns the value of attribute doc.
4 5 6 |
# File 'lib/kafo/param.rb', line 4 def doc @doc end |
#module ⇒ Object (readonly)
Returns the value of attribute module.
3 4 5 |
# File 'lib/kafo/param.rb', line 3 def module @module end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
3 4 5 |
# File 'lib/kafo/param.rb', line 3 def name @name end |
#value_set ⇒ Object
Returns the value of attribute value_set.
4 5 6 |
# File 'lib/kafo/param.rb', line 4 def value_set @value_set end |
Instance Method Details
#module_name ⇒ Object
21 22 23 |
# File 'lib/kafo/param.rb', line 21 def module_name self.module.name end |
#multivalued? ⇒ Boolean
To be overwritten in children
70 71 72 |
# File 'lib/kafo/param.rb', line 70 def multivalued? false end |
#set_default(defaults) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/kafo/param.rb', line 29 def set_default(defaults) if default == 'UNSET' self.value = nil else self.value = (value = defaults[default]) == :undef ? nil : value end end |
#set_value_by_config(config) ⇒ Object
37 38 39 40 |
# File 'lib/kafo/param.rb', line 37 def set_value_by_config(config) base = config[module_name] self.value = base[name] if base.has_key?(name) end |
#to_s ⇒ Object
25 26 27 |
# File 'lib/kafo/param.rb', line 25 def to_s "#<#{self.class}:#{self.object_id} @name=#{name.inspect} @default=#{default.inspect} @value=#{value.inspect}>" end |
#valid? ⇒ Boolean
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/kafo/param.rb', line 42 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! do |v| result = v.evaluate(validator) # validate_re returns nil if succeeds result = true if v.name == 'validate_re' && result.nil? result end validations.all? end |
#value ⇒ Object
we use @value_set flag because even nil can be valid value
12 13 14 |
# File 'lib/kafo/param.rb', line 12 def value @value_set ? @value : default end |
#value=(value) ⇒ Object
16 17 18 19 |
# File 'lib/kafo/param.rb', line 16 def value=(value) @value_set = true @value = value == 'UNDEF' ? nil : value end |