Class: DissociatedIntrospection::EvalSandbox

Inherits:
Object
  • Object
show all
Defined in:
lib/dissociated_introspection/eval_sandbox.rb

Instance Method Summary collapse

Constructor Details

#initialize(file:, recording_parent: recording_parent_default, module_namespace: Module.new) ⇒ EvalSandbox

Returns a new instance of EvalSandbox.



4
5
6
7
8
# File 'lib/dissociated_introspection/eval_sandbox.rb', line 4

def initialize(file:, recording_parent: recording_parent_default, module_namespace: Module.new)
  @file             = file
  @recording_parent = recording_parent
  @module_namespace = module_namespace
end

Instance Method Details

#callObject



11
12
13
14
15
# File 'lib/dissociated_introspection/eval_sandbox.rb', line 11

def call
  module_namespace.module_eval(recording_parent.read, recording_parent.path)
  module_namespace.module_eval(file.read, file.path)
  module_namespace.const_get(module_namespace.constants.select{|c| c != :RecordingParent}.last)
end

#constantsObject



17
18
19
# File 'lib/dissociated_introspection/eval_sandbox.rb', line 17

def constants
  module_namespace.constants
end