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