Module: Opal

Extended by:
UseGem
Defined in:
opal/lib/opal.rb,
opal/lib/opal/cli.rb,
opal/lib/opal/erb.rb,
opal/lib/opal/util.rb,
opal/lib/tilt/opal.rb,
opal/lib/opal/paths.rb,
opal/lib/opal/config.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/for.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/cli_runners.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/path_reader.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/sprockets/erb.rb,
opal/lib/opal/parser/grammar.rb,
opal/lib/opal/regexp_anchors.rb,
opal/lib/opal/nodes/constants.rb,
opal/lib/opal/nodes/variables.rb,
opal/lib/opal/parser/keywords.rb,
opal/lib/opal/hike_path_finder.rb,
opal/lib/opal/sprockets/server.rb,
opal/lib/opal/nodes/definitions.rb,
opal/lib/opal/builder_processors.rb,
opal/lib/opal/cli_runners/nodejs.rb,
opal/lib/opal/cli_runners/server.rb,
opal/lib/opal/nodes/call_special.rb,
opal/lib/opal/parser/parser_scope.rb,
opal/lib/opal/sprockets/processor.rb,
opal/lib/opal/cli_runners/phantomjs.rb,
opal/lib/opal/nodes/runtime_helpers.rb,
opal/lib/opal/nodes/singleton_class.rb,
opal/lib/opal/sprockets/environment.rb,
opal/lib/opal/sprockets/path_reader.rb,
opal/lib/opal/cli_runners/apple_script.rb,
opal/lib/opal/sprockets/source_map_server.rb,
opal/lib/opal/sprockets/source_map_header_patch.rb

Overview

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

Defined Under Namespace

Modules: BuilderProcessors, CliRunners, Config, ERB, Keywords, Nodes, Sprockets, UseGem, Util Classes: Builder, CLI, CLIOptions, Compiler, Environment, Fragment, HikePathFinder, Lexer, Parser, ParserScope, PathReader, Processor, Server, Sexp, SourceMap, SourceMapServer, TiltTemplate

Constant Summary

VERSION =

WHEN RELEASING: Remember to update RUBY_ENGINE_VERSION in opal/corelib/variables.rb too!

'0.8.0'
REGEXP_START =
RUBY_ENGINE == 'opal' ? '^' : '\A'.freeze
REGEXP_END =
RUBY_ENGINE == 'opal' ? '$' : '\z'.freeze

Class Method Summary collapse

Methods included from UseGem

use_gem

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.



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

def self.append_path(path)
  append_paths(path)
end

.append_paths(*paths) ⇒ Object



21
22
23
# File 'opal/lib/opal/paths.rb', line 21

def self.append_paths(*paths)
  self.paths.concat(paths)
end

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

Compile a string of ruby code into javascript.

Examples:


Opal.compile "ruby_code"
# => "string of javascript code"

Parameters:

  • source (String)

    ruby source

  • options (Hash) (defaults to: {})

    compiler options

Returns:

  • (String)

    javascript code

See Also:

  • for compiler options


20
21
22
# File 'opal/lib/opal/compiler.rb', line 20

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

.core_dirObject



6
7
8
# File 'opal/lib/opal/paths.rb', line 6

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

.gem_dirObject



2
3
4
# File 'opal/lib/opal/paths.rb', line 2

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

.pathsObject

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



52
53
54
# File 'opal/lib/opal/paths.rb', line 52

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

.process(asset) ⇒ Object

Deprecated.


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

def self.process asset
  Environment.new[asset].to_s
end

.std_dirObject



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

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