Sha256: 77d7d51c2eedba294d44e6a446ca99c1ea99e867399b90a936002af12b4208ee

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

require "generator"

# the 'public' interface
require "johnson/error"
require "johnson/runtime"
require "johnson/ruby_land_proxy"
require "johnson/parser"

# visitable module and visitors
require "johnson/visitable"
require "johnson/visitors"

# parse tree nodes
require "johnson/nodes"

module Johnson
  VERSION = "1.1.2.5"

  def self.version
    VERSION
  end

  ###
  # Evaluate the given JavaScript +expression+ in a new runtime, after
  # setting the given +vars+ into the global object.
  #
  # Returns the result of evaluating the given expression.
  def self.evaluate(expression, vars={})
    runtime = Johnson::Runtime.new
    vars.each { |key, value| runtime[key] = value }

    runtime.evaluate(expression)
  end

  def self.parse(js, *args)
    Johnson::Parser.parse(js, *args)
  end

  ###
  # Create a new runtime and load all +files+.
  #
  # Returns the new Johnson::Runtime.
  def self.load(*files)
    rt = Johnson::Runtime.new
    rt.load(*files)
    rt
  end
  
  def self.runtimes
    Runtime.runtimes
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
smparkes-johnson-1.1.2.5 lib/johnson.rb