Class: Kafo::Param
- Inherits:
-
Object
- Object
- Kafo::Param
- Defined in:
- lib/kafo/param.rb
Direct Known Subclasses
Kafo::Params::Array, Kafo::Params::Boolean, Kafo::Params::Integer, Kafo::Params::Password, Kafo::Params::String
Instance Attribute Summary collapse
-
#condition ⇒ Object
Returns the value of attribute condition.
-
#default ⇒ Object
Returns the value of attribute default.
-
#doc ⇒ Object
Returns the value of attribute doc.
- #groups ⇒ Object
-
#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
- #<=>(o) ⇒ Object
- #condition_value ⇒ Object
-
#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
- #visible?(context = []) ⇒ Boolean
Constructor Details
#initialize(builder, name) ⇒ Param
Returns a new instance of Param.
10 11 12 13 |
# File 'lib/kafo/param.rb', line 10 def initialize(builder, name) @name = name @module = builder end |
Instance Attribute Details
#condition ⇒ Object
Returns the value of attribute condition.
7 8 9 |
# File 'lib/kafo/param.rb', line 7 def condition @condition end |
#default ⇒ Object
Returns the value of attribute default.
7 8 9 |
# File 'lib/kafo/param.rb', line 7 def default @default end |
#doc ⇒ Object
Returns the value of attribute doc.
7 8 9 |
# File 'lib/kafo/param.rb', line 7 def doc @doc end |
#groups ⇒ Object
15 16 17 |
# File 'lib/kafo/param.rb', line 15 def groups @groups || [] end |
#module ⇒ Object (readonly)
Returns the value of attribute module.
6 7 8 |
# File 'lib/kafo/param.rb', line 6 def module @module end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
6 7 8 |
# File 'lib/kafo/param.rb', line 6 def name @name end |
#value_set ⇒ Object
Returns the value of attribute value_set.
7 8 9 |
# File 'lib/kafo/param.rb', line 7 def value_set @value_set end |
Instance Method Details
#<=>(o) ⇒ Object
82 83 84 85 86 87 88 |
# File 'lib/kafo/param.rb', line 82 def <=> o unless KafoConfigure.config.app[:no_prefix] r = self.module_name <=> o.module_name return r unless r == 0 end self.name <=> o.name end |
#condition_value ⇒ Object
94 95 96 |
# File 'lib/kafo/param.rb', line 94 def condition_value value.to_s end |
#module_name ⇒ Object
29 30 31 |
# File 'lib/kafo/param.rb', line 29 def module_name self.module.name end |
#multivalued? ⇒ Boolean
To be overwritten in children
78 79 80 |
# File 'lib/kafo/param.rb', line 78 def multivalued? false end |
#set_default(defaults) ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/kafo/param.rb', line 37 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
45 46 47 48 |
# File 'lib/kafo/param.rb', line 45 def set_value_by_config(config) base = config[module_name] self.value = base[name] if base.has_key?(name) end |
#to_s ⇒ Object
33 34 35 |
# File 'lib/kafo/param.rb', line 33 def to_s "#<#{self.class}:#{self.object_id} @name=#{name.inspect} @default=#{default.inspect} @value=#{value.inspect}>" end |
#valid? ⇒ Boolean
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/kafo/param.rb', line 50 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
20 21 22 |
# File 'lib/kafo/param.rb', line 20 def value @value_set ? @value : default end |
#value=(value) ⇒ Object
24 25 26 27 |
# File 'lib/kafo/param.rb', line 24 def value=(value) @value_set = true @value = value == 'UNDEF' ? nil : value end |
#visible?(context = []) ⇒ Boolean
90 91 92 |
# File 'lib/kafo/param.rb', line 90 def visible?(context = []) condition.nil? || condition.empty? ? true : evaluate_condition(context) end |