class DissociatedIntrospection::EvalSandbox

Attributes

file[R]
module_namespace[R]
recording_parent[R]

Public Class Methods

new(file:, recording_parent: recording_parent_default, module_namespace: Module.new) click to toggle source
# 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

Public Instance Methods

call() click to toggle source
# 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
constants() click to toggle source
# File lib/dissociated_introspection/eval_sandbox.rb, line 17
def constants
  module_namespace.constants
end

Private Instance Methods

recording_parent_default() click to toggle source
# File lib/dissociated_introspection/eval_sandbox.rb, line 25
def recording_parent_default
  File.new(File.join(File.dirname(__FILE__), "recording_parent.rb"))
end