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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
# File 'lib/dslh.rb', line 189
def method_missing(method_name, *args, &block)
key_conv = @__options__[:key_conv]
value_conv = @__options__[:value_conv]
nested_hash = ScopeBlock.nest(binding, 'block', method_name)
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
185
186
187
|
# File 'lib/dslh.rb', line 185
def _(&block)
ScopeBlock.nest(binding, 'block')
end
|