Module: Tengine::Support::Config::Definition
Defined Under Namespace
Modules: ClassMethods, HasManyChildren
Classes: Field, Group, OptparseVisitor, Suite
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#__name__ ⇒ Object
Returns the value of attribute __name__.
96
97
98
|
# File 'lib/tengine/support/config/definition.rb', line 96
def __name__
@__name__
end
|
#__parent__ ⇒ Object
Returns the value of attribute __parent__.
96
97
98
|
# File 'lib/tengine/support/config/definition.rb', line 96
def __parent__
@__parent__
end
|
#children ⇒ Object
Returns the value of attribute children.
96
97
98
|
# File 'lib/tengine/support/config/definition.rb', line 96
def children
@children
end
|
Class Method Details
.included(klass) ⇒ Object
13
14
15
16
17
18
19
20
21
|
# File 'lib/tengine/support/config/definition.rb', line 13
def included(klass)
klass.extend(ClassMethods)
klass.class_eval do
self.class_attribute :children, :instance_writer => false, :instance_reader => false
self.children = []
self.class_attribute :definition_reference_names, :instance_writer => false
self.definition_reference_names = []
end
end
|
Instance Method Details
#[](child_name) ⇒ Object
160
161
162
|
# File 'lib/tengine/support/config/definition.rb', line 160
def [](child_name)
self.send(child_name)
end
|
#[]=(child_name, value) ⇒ Object
164
165
166
|
# File 'lib/tengine/support/config/definition.rb', line 164
def []=(child_name, value)
self.send("#{child_name}=", value)
end
|
#accept_visitor(visitor) ⇒ Object
132
133
134
|
# File 'lib/tengine/support/config/definition.rb', line 132
def accept_visitor(visitor)
visitor.visit(self)
end
|
#action? ⇒ Boolean
157
|
# File 'lib/tengine/support/config/definition.rb', line 157
def action?; false; end
|
#child_by_name(__name__) ⇒ Object
107
108
109
|
# File 'lib/tengine/support/config/definition.rb', line 107
def child_by_name(__name__)
(children || []).detect{|child| child.__name__ == __name__}
end
|
#find(name_array) ⇒ Object
111
112
113
114
115
116
117
118
119
|
# File 'lib/tengine/support/config/definition.rb', line 111
def find(name_array)
name_array = Array(name_array)
head = name_array.shift
if child = child_by_name(head)
name_array.empty? ? child : child.find(name_array)
else
nil
end
end
|
#get_value(obj) ⇒ Object
144
145
146
|
# File 'lib/tengine/support/config/definition.rb', line 144
def get_value(obj)
obj.is_a?(Proc) ? self.instance_eval(&obj) : obj
end
|
#instantiate_children ⇒ Object
98
99
100
101
102
103
104
105
|
# File 'lib/tengine/support/config/definition.rb', line 98
def instantiate_children
@children = self.class.children.map do |class_child|
child = class_child.dup
child.__parent__ = self
child
end
self
end
|
#load(hash) ⇒ Object
128
129
130
|
# File 'lib/tengine/support/config/definition.rb', line 128
def load(hash)
hash.each{|__name__, value| send("#{__name__}=", value)}
end
|
#long_opt ⇒ Object
153
154
155
|
# File 'lib/tengine/support/config/definition.rb', line 153
def long_opt
'--' << name_array.join('-').gsub(%r{_}, '-')
end
|
#name_array ⇒ Object
140
141
142
|
# File 'lib/tengine/support/config/definition.rb', line 140
def name_array
(__parent__ ? __parent__.name_array : []) + [__name__]
end
|
#root ⇒ Object
136
137
138
|
# File 'lib/tengine/support/config/definition.rb', line 136
def root
__parent__ ? __parent__.root : nil
end
|
#separator? ⇒ Boolean
158
|
# File 'lib/tengine/support/config/definition.rb', line 158
def separator?; false; end
|
#short_opt ⇒ Object
148
149
150
151
|
# File 'lib/tengine/support/config/definition.rb', line 148
def short_opt
r = root.mapping[ name_array ]
r ? "-#{r}" : nil
end
|
#to_hash ⇒ Object
121
122
123
124
125
126
|
# File 'lib/tengine/support/config/definition.rb', line 121
def to_hash
children.inject({}) do |dest, child|
dest[child.__name__] = child.to_hash
dest
end
end
|