module RubyBox::RuntimeEnvironment

Public Instance Methods

builder() click to toggle source
# File lib/ruby_box/runtime_environment.rb, line 16
def builder
  @builder ||= begin
    if superclass.respond_to?(:builder)
      superclass.builder.dup
    else
      Opal::Builder.new compiler_options: { arity_check: true, dynamic_require_severity: :error }
    end
  end
end
execute(source) click to toggle source
# File lib/ruby_box/runtime_environment.rb, line 55
def execute(source)
  execute_newly_processed_dependencies { builder.build_str source, '(execute)' }
rescue SyntaxError => error
  raise CompilationError, error.message
end
executes(source) click to toggle source
# File lib/ruby_box/runtime_environment.rb, line 40
def executes(source)
  builder.build_str source, '(executes)'
rescue SyntaxError => error
  raise CompilationError, error.message
end
requires(*paths) click to toggle source
# File lib/ruby_box/runtime_environment.rb, line 34
def requires(*paths)
  paths.each { |path| builder.build path }
rescue SyntaxError => error
  raise CompilationError, error.message
end
snapshot_source() click to toggle source
# File lib/ruby_box/runtime_environment.rb, line 46
def snapshot_source
  builder.to_s
end
uses(*gem_names) click to toggle source
# File lib/ruby_box/runtime_environment.rb, line 28
def uses(*gem_names)
  gem_names.each { |gem_name| builder.use_gem gem_name }
rescue SyntaxError => error
  raise CompilationError, error.message
end

Private Instance Methods

capture_newly_processed_dependencies() { || ... } click to toggle source
# File lib/ruby_box/runtime_environment.rb, line 69
def capture_newly_processed_dependencies
  processed_was = builder.processed.dup
  yield
  builder.processed - processed_was
end
execute_newly_processed_dependencies() { || ... } click to toggle source
# File lib/ruby_box/runtime_environment.rb, line 63
def execute_newly_processed_dependencies
  value = nil
  capture_newly_processed_dependencies { yield }.each { |dependency| value = eval_compiled_source dependency.source }
  value
end