Module: CommonjsRhino

Defined in:
lib/commonjs-rhino.rb,
lib/commonjs-rhino/version.rb

Overview

Defined Under Namespace

Classes: Context

Constant Summary collapse

VERSION =
'1.0.0'

Class Method Summary collapse

Class Method Details

.create_context(require_base_paths = [Dir.getwd]) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/commonjs-rhino.rb', line 49

def self.create_context(require_base_paths = [Dir.getwd])
  require_base_paths = Array(require_base_paths)

  source_provider = UrlModuleSourceProvider.new(
    require_base_paths.map do |base_path|
      Java::JavaNet::URI.new("file://#{base_path}")
    end, nil
  )

  script_provider = SoftCachingModuleScriptProvider.new(source_provider)

  builder = RequireBuilder.new
    .setModuleScriptProvider(script_provider)
    .setSandboxed(false)

  context = Java::OrgMozillaJavascript::Context.enter
  top_level_scope = context.initStandardObjects()
  req = builder.createRequire(context, top_level_scope)
  req.install(top_level_scope)
  context.java_send(:exit)

  CommonjsRhino::Context.new(top_level_scope, require_base_paths)
end