Module: Opal

Defined in:
opal/lib/opal.rb,
opal/lib/opal/cli.rb,
opal/lib/opal/erb.rb,
opal/lib/opal/parser.rb,
opal/lib/opal/builder.rb,
opal/lib/opal/version.rb,
opal/lib/opal/compiler.rb,
opal/lib/opal/fragment.rb,
opal/lib/opal/nodes/if.rb,
opal/lib/opal/nodes/def.rb,
opal/lib/opal/nodes/top.rb,
opal/lib/opal/nodes/base.rb,
opal/lib/opal/nodes/call.rb,
opal/lib/opal/nodes/case.rb,
opal/lib/opal/nodes/hash.rb,
opal/lib/opal/nodes/iter.rb,
opal/lib/opal/source_map.rb,
opal/lib/opal/cli_options.rb,
opal/lib/opal/nodes/array.rb,
opal/lib/opal/nodes/class.rb,
opal/lib/opal/nodes/logic.rb,
opal/lib/opal/nodes/masgn.rb,
opal/lib/opal/nodes/scope.rb,
opal/lib/opal/nodes/super.rb,
opal/lib/opal/nodes/while.rb,
opal/lib/opal/nodes/yield.rb,
opal/lib/opal/parser/sexp.rb,
opal/lib/opal/nodes/module.rb,
opal/lib/opal/nodes/rescue.rb,
opal/lib/opal/parser/lexer.rb,
opal/lib/opal/nodes/arglist.rb,
opal/lib/opal/nodes/defined.rb,
opal/lib/opal/nodes/helpers.rb,
opal/lib/opal/nodes/literal.rb,
opal/lib/opal/parser/grammar.rb,
opal/lib/opal/nodes/constants.rb,
opal/lib/opal/nodes/variables.rb,
opal/lib/opal/parser/keywords.rb,
opal/lib/opal/nodes/definitions.rb,
opal/lib/opal/nodes/call_special.rb,
opal/lib/opal/parser/parser_scope.rb,
opal/lib/opal/nodes/runtime_helpers.rb,
opal/lib/opal/nodes/singleton_class.rb

Overview

Opal is a ruby to javascript compiler, with a runtime for running in any javascript environment.

Defined Under Namespace

Modules: ERB, Keywords, Nodes Classes: Builder, CLI, CLIOptions, Compiler, Fragment, Lexer, Parser, ParserScope, Sexp, SourceMap

Constant Summary

VERSION =
'0.5.5'

Class Method Summary collapse

Class Method Details

.append_path(path) ⇒ Object

Add a file path to opals load path. Any gem containing ruby code that Opal has access to should add a load path through this method. Load paths added here should only be paths which contain code targeted at being compiled by Opal.



25
26
27
# File 'opal/lib/opal.rb', line 25

def self.append_path(path)
  paths << path
end

.compile(source, options = {}) ⇒ Object



7
8
9
# File 'opal/lib/opal/compiler.rb', line 7

def self.compile(source, options = {})
  Compiler.new.compile(source, options)
end

.core_dirObject



13
14
15
# File 'opal/lib/opal.rb', line 13

def self.core_dir
  File.expand_path('../../opal', __FILE__.untaint)
end

.gem_dirObject



9
10
11
# File 'opal/lib/opal.rb', line 9

def self.gem_dir
  File.expand_path('..', __FILE__.untaint)
end

.pathsObject

Private, don't add to these directly (use .append_path instead).



40
41
42
# File 'opal/lib/opal.rb', line 40

def self.paths
  @paths ||= [core_dir.untaint, std_dir.untaint, gem_dir.untaint]
end

.std_dirObject



17
18
19
# File 'opal/lib/opal.rb', line 17

def self.std_dir
  File.expand_path('../../stdlib', __FILE__.untaint)
end

.use_gem(gem_name, include_dependecies = true) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'opal/lib/opal.rb', line 29

def self.use_gem(gem_name, include_dependecies = true)
  spec = Gem::Specification.find_by_name(gem_name)

  spec.runtime_dependencies.each do |dependency|
    use_gem dependency.name
  end if include_dependecies

  Opal.append_path File.join(spec.gem_dir, 'lib')
end