Module: Opal
- Defined in:
- opal/lib/opal.rb,
opal/lib/opal/cli.rb,
opal/lib/opal/erb.rb,
opal/lib/opal/util.rb,
opal/lib/opal/paths.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/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
Overview
Opal is a ruby to javascript compiler, with a runtime for running
in any javascript environment.
Defined Under Namespace
Modules: BuilderProcessors, CliRunners, ERB, Keywords, Nodes, Sprockets, Util
Classes: Builder, CLI, CLIOptions, Compiler, Environment, Fragment, HikePathFinder, Lexer, Parser, ParserScope, PathReader, Processor, Server, Sexp, SourceMap, SourceMapServer
Constant Summary
- VERSION =
'0.7.0'
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.
18
19
20
|
# File 'opal/lib/opal/paths.rb', line 18
def self.append_path(path)
paths << path
end
|
.compile(source, options = {}) ⇒ String
Compile a string of ruby code into javascript.
20
21
22
|
# File 'opal/lib/opal/compiler.rb', line 20
def self.compile(source, options = {})
Compiler.new(source, options).compile
end
|
6
7
8
|
# File 'opal/lib/opal/paths.rb', line 6
def self.core_dir
File.expand_path('../../../opal', __FILE__.untaint)
end
|
2
3
4
|
# File 'opal/lib/opal/paths.rb', line 2
def self.gem_dir
File.expand_path('../..', __FILE__.untaint)
end
|
Private, don't add to these directly (use .append_path instead).
45
46
47
|
# File 'opal/lib/opal/paths.rb', line 45
def self.paths
@paths ||= [core_dir.untaint, std_dir.untaint, gem_dir.untaint]
end
|
.process(asset) ⇒ Object
7
8
9
|
# File 'opal/lib/opal/sprockets/environment.rb', line 7
def self.process asset
Environment.new[asset].to_s
end
|
.require_paths_for_gem(gem_name, include_dependencies) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'opal/lib/opal/paths.rb', line 28
def self.require_paths_for_gem(gem_name, include_dependencies)
paths = []
spec = Gem::Specification.find_by_name(gem_name)
spec.runtime_dependencies.each do |dependency|
paths += require_paths_for_gem(dependency.name, include_dependencies)
end if include_dependencies
gem_dir = spec.gem_dir
spec.require_paths.map do |path|
paths << File.join(gem_dir, path)
end
paths
end
|
10
11
12
|
# File 'opal/lib/opal/paths.rb', line 10
def self.std_dir
File.expand_path('../../../stdlib', __FILE__.untaint)
end
|
.use_gem(gem_name, include_dependencies = true) ⇒ Object
22
23
24
25
26
|
# File 'opal/lib/opal/paths.rb', line 22
def self.use_gem(gem_name, include_dependencies = true)
require_paths_for_gem(gem_name, include_dependencies).each do |path|
append_path path
end
end
|