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