# File lib/safemode.rb, line 42 def initialize(delegate = nil, delegate_methods = [], filename = nil, line = nil) @scope = Scope.new(delegate, delegate_methods) @filename = filename @line = line end
# File lib/safemode.rb, line 48 def eval(code, assigns = {}, locals = {}, &block) code = Parser.jail(code) binding = @scope.bind(assigns, locals, &block) result = Kernel.eval(code, binding, @filename || __FILE__, @line || __LINE__) end
# File lib/safemode.rb, line 54 def output @scope.output end