Class: Kafo::Param
- Inherits:
-
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.
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
Returns the value of attribute module.
6
7
8
|
# File 'lib/kafo/param.rb', line 6
def module
@module
end
|
#name ⇒ Object
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
108
109
110
111
112
113
114
|
# File 'lib/kafo/param.rb', line 108
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 ⇒ Object
120
121
122
|
# File 'lib/kafo/param.rb', line 120
def condition_value
value.to_s
end
|
#dump_default ⇒ Object
35
36
37
|
# File 'lib/kafo/param.rb', line 35
def dump_default
default
end
|
#module_name ⇒ Object
39
40
41
|
# File 'lib/kafo/param.rb', line 39
def module_name
self.module.name
end
|
#multivalued? ⇒ Boolean
To be overwritten in children
104
105
106
|
# File 'lib/kafo/param.rb', line 104
def multivalued?
false
end
|
#set_default(defaults) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/kafo/param.rb', line 47
def set_default(defaults)
if default == 'UNSET'
self.default = nil
else
value = defaults.has_key?(default) ? defaults[default] : default
case value
when :undef
self.default = nil
when :undefined
else
self.default = value
end
end
end
|
#set_value_by_config(config) ⇒ Object
72
73
74
75
|
# File 'lib/kafo/param.rb', line 72
def set_value_by_config(config)
base = config[self.module.class_name]
self.value = base[name] if base.has_key?(name)
end
|
#to_s ⇒ Object
43
44
45
|
# File 'lib/kafo/param.rb', line 43
def to_s
"#<#{self.class}:#{self.object_id} @name=#{name.inspect} @default=#{default.inspect} @value=#{value.inspect}>"
end
|
#unset_value ⇒ Object
30
31
32
33
|
# File 'lib/kafo/param.rb', line 30
def unset_value
@value_set = false
@value = nil
end
|
#valid? ⇒ Boolean
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
# File 'lib/kafo/param.rb', line 77
def valid?
validations = self.module.validations(self).map do |v|
if v.name == 'validate_re' || v.name == 'validate_integer'
args = v.arguments.to_a
else
args = v.arguments.select { |a| a.to_s == "$#{self.name}" }
end
{:name => v.name, :arguments => interpret_validation_args(args)}
end
@validator = Validator.new
validations.each { |v| @validator.send(v[:name], v[:arguments]) }
@validator.errors.empty?
end
|
#validation_errors ⇒ Object
95
96
97
98
99
100
101
|
# File 'lib/kafo/param.rb', line 95
def validation_errors
if @validator
@validator.errors
else
[]
end
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
28
|
# File 'lib/kafo/param.rb', line 24
def value=(value)
@value_set = true
value = value.to_s if value.is_a?(::HighLine::String) @value = value == 'UNDEF' ? nil : value
end
|
#visible?(context = []) ⇒ Boolean
116
117
118
|
# File 'lib/kafo/param.rb', line 116
def visible?(context = [])
condition.nil? || condition.empty? ? true : evaluate_condition(context)
end
|