Module: DSeL::DSL::Mixins::Environment::IvarExplorer
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
8
9
10
11
12
13
14
15
16
17
|
# File 'lib/dsel/dsl/mixins/environment/ivar_explorer.rb', line 8
def method_missing( name, *args, &block )
first_letter = name[0...1]
if block && first_letter == first_letter.capitalize
ivar = "@#{name}".to_sym
return _dsel_node_for_ivar( ivar, &block )
end
super( name, *args, &block )
end
|
Instance Method Details
#_dsel_node_for_ivar(ivar, &block) ⇒ Object
20
21
22
23
24
25
26
27
|
# File 'lib/dsel/dsl/mixins/environment/ivar_explorer.rb', line 20
def _dsel_node_for_ivar( ivar, &block )
ivar = ivar.downcase
if !_dsel_node.subject.instance_variable_defined?( ivar )
fail ArgumentError, "Instance variable not defined: #{ivar}"
end
_dsel_node.node_for( _dsel_node.subject.instance_variable_get( ivar ) ).run( &block )
end
|