Class: Dslh::Scope
- Inherits:
-
Object
show all
- Defined in:
- lib/dslh.rb
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
|
# File 'lib/dslh.rb', line 173
def method_missing(method_name, *args, &block)
key_conv = @__options__[:key_conv] || @__options__[:conv]
value_conv = @__options__[:value_conv] || @__options__[:conv]
nested_hash = ScopeBlock.nest(binding, 'block')
method_name = key_conv.call(method_name) if key_conv
if args.empty?
@__hash__[method_name] = nested_hash
else
args = args.map {|i| value_conv.call(i) } if value_conv
value = args.length > 1 ? args : args[0]
if nested_hash
@__hash__[method_name] = {
value => nested_hash
}
else
@__hash__[method_name] = value
end
return @__hash__
end
end
|
Instance Method Details
#_(&block) ⇒ Object
169
170
171
|
# File 'lib/dslh.rb', line 169
def _(&block)
ScopeBlock.nest(binding, 'block')
end
|