class TrustedSandbox::GeneralPurpose

This is a general purpose class that can be used to run untrusted code in a container using TrustedSandbox. Usage:

TrustedSandbox.run! TrustedSandbox::GeneralPurpose, "1 + 1"
# => 2

TrustedSandbox.run! TrustedSandbox::GeneralPurpose, "input[:a] + input[:b]", input: {a: 1, b: 2}
# => 3

Public Class Methods

new(code, args={}) click to toggle source
# File lib/trusted_sandbox/general_purpose.rb, line 13
def initialize(code, args={})
  @code = code
  args.each do |name, value|
    singleton_klass = class << self; self; end
    singleton_klass.class_eval { attr_reader name }
    instance_variable_set "@#{name}", value
  end
end

Public Instance Methods

run() click to toggle source
# File lib/trusted_sandbox/general_purpose.rb, line 22
def run
  eval @code
end