module TrustedSandbox

Constants

VERSION

Public Class Methods

config() { |config| ... } click to toggle source

Usage:

TrustedSandbox.config do |c|
  c.pool_size = 10
  # ...
end
# File lib/trusted_sandbox.rb, line 25
def self.config
  @config ||= Defaults.send(:new).override config_overrides_from_file
  yield @config if block_given?
  @config.finished_configuring
end
config_overrides_from_file(env = nil) click to toggle source
# File lib/trusted_sandbox.rb, line 31
def self.config_overrides_from_file(env = nil)
  yaml_path = %w(trusted_sandbox.yml config/trusted_sandbox.yml).find {|x| File.exist?(x)}
  return {} unless yaml_path

  env ||= ENV['TRUSTED_SANDBOX_ENV'] || ENV['RAILS_ENV'] || 'development'
  YAML.load_file(yaml_path)[env] || {}
end
new_runner(config_override = {}) click to toggle source
# File lib/trusted_sandbox.rb, line 67
def self.new_runner(config_override = {})
  HostRunner.new(config, uid_pool, config_override)
end
run(klass, *args) click to toggle source

@param klass [Class] the class to be instantiated in the safe sandbox @param *args [Array] arguments to send to klass#new

# File lib/trusted_sandbox.rb, line 51
def self.run(klass, *args)
  new_runner.run(klass, *args)
end
run!(klass, *args) click to toggle source
# File lib/trusted_sandbox.rb, line 55
def self.run!(klass, *args)
  new_runner.run!(klass, *args)
end
run_code(code, args={}) click to toggle source
# File lib/trusted_sandbox.rb, line 59
def self.run_code(code, args={})
  new_runner.run_code(code, args)
end
run_code!(code, args={}) click to toggle source
# File lib/trusted_sandbox.rb, line 63
def self.run_code!(code, args={})
  new_runner.run_code!(code, args)
end
test_connection() click to toggle source
# File lib/trusted_sandbox.rb, line 15
def self.test_connection
  Docker.version
  true
end
uid_pool() click to toggle source
# File lib/trusted_sandbox.rb, line 39
def self.uid_pool
  @uid_pool ||= UidPool.new config.host_uid_pool_lock_path, config.pool_min_uid, config.pool_max_uid,
                            timeout: config.pool_timeout, retries: config.pool_retries, delay: config.pool_delay
end
with_options(config_override={}) { |new_runner(config_override)| ... } click to toggle source

@param config_override [Hash] allows overriding configurations for a specific invocation

# File lib/trusted_sandbox.rb, line 45
def self.with_options(config_override={})
  yield new_runner(config_override)
end