Class: Param

Inherits:
Object
  • Object
show all
Defined in:
lib/kafo/param.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#defaultObject

Returns the value of attribute default.



4
5
6
# File 'lib/kafo/param.rb', line 4

def default
  @default
end

#docObject

Returns the value of attribute doc.



4
5
6
# File 'lib/kafo/param.rb', line 4

def doc
  @doc
end

#moduleObject (readonly)

Returns the value of attribute module.



3
4
5
# File 'lib/kafo/param.rb', line 3

def module
  @module
end

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/kafo/param.rb', line 3

def name
  @name
end

#value_setObject

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_nameObject



21
22
23
# File 'lib/kafo/param.rb', line 21

def module_name
  self.module.name
end

#multivalued?Boolean

To be overwritten in children

Returns:

  • (Boolean)


58
59
60
# File 'lib/kafo/param.rb', line 58

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_sObject



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

Returns:

  • (Boolean)


42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 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
    args = v.arguments.select { |a| a.to_s == "$#{self.name}" }
    v.arguments = Puppet::Parser::AST::ASTArray.new :children => args
    v
  end

  validator = Validator.new([self])
  validations.map { |v| v.evaluate(validator) }.all?
end

#valueObject

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