Class: Fauna::DSLContext
- Inherits:
-
Object
- Object
- Fauna::DSLContext
- Defined in:
- lib/fauna/util.rb
Overview
:nodoc:
Direct Known Subclasses
Constant Summary collapse
- NON_PROXIED_METHODS =
Set.new %w(__send__ object_id __id__ == equal? ! != instance_exec instance_variables instance_variable_get instance_variable_set ).map(&:to_sym)
Class Method Summary collapse
Instance Method Summary collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
46 47 48 |
# File 'lib/fauna/util.rb', line 46 def method_missing(method, *args, &block) @__ctx__.send(method, *args, &block) end |
Class Method Details
.eval_dsl(dsl, *args, &blk) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/fauna/util.rb', line 19 def self.eval_dsl(dsl, *args, &blk) ctx = eval('self', blk.binding) dsl.instance_variable_set(:@__ctx__, ctx) ctx.instance_variables.each do |iv| dsl.instance_variable_set(iv, ctx.instance_variable_get(iv)) end dsl.instance_exec(*args, &blk) ensure dsl.instance_variables.each do |iv| if iv.to_sym != :@__ctx__ ctx.instance_variable_set(iv, dsl.instance_variable_get(iv)) end end end |