Module: Opal
- Extended by:
 - Deprecations, UseGem
 
- Defined in:
 - opal/lib/opal/requires.rb,
opal/lib/opal/cli.rb,
opal/lib/opal/erb.rb,
opal/lib/opal/hike.rb,
opal/lib/opal/repl.rb,
opal/lib/opal/util.rb,
opal/lib/tilt/opal.rb,
opal/lib/opal/cache.rb,
opal/lib/opal/paths.rb,
opal/lib/opal/config.rb,
opal/lib/opal/errors.rb,
opal/lib/opal/builder.rb,
opal/lib/opal/version.rb,
opal/lib/opal/ast/node.rb,
opal/lib/opal/compiler.rb,
opal/lib/opal/fragment.rb,
opal/lib/opal/nodes/if.rb,
opal/lib/opal/rewriter.rb,
opal/lib/opal/nodes/def.rb,
opal/lib/opal/nodes/top.rb,
opal/lib/opal/nodes/args.rb,
opal/lib/opal/nodes/base.rb,
opal/lib/opal/nodes/call.rb,
opal/lib/opal/nodes/defs.rb,
opal/lib/opal/nodes/hash.rb,
opal/lib/opal/nodes/iter.rb,
opal/lib/opal/source_map.rb,
opal/lib/opal/ast/builder.rb,
opal/lib/opal/ast/matcher.rb,
opal/lib/opal/cli_options.rb,
opal/lib/opal/cli_runners.rb,
opal/lib/opal/eof_content.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/path_reader.rb,
opal/lib/opal/deprecations.rb,
opal/lib/opal/nodes/lambda.rb,
opal/lib/opal/nodes/module.rb,
opal/lib/opal/nodes/rescue.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/nodes/args/arg.rb,
opal/lib/opal/nodes/x_string.rb,
opal/lib/opal/regexp_anchors.rb,
opal/lib/opal/rewriters/base.rb,
opal/lib/opal/cli_runners/gjs.rb,
opal/lib/opal/nodes/constants.rb,
opal/lib/opal/nodes/variables.rb,
opal/lib/opal/cache/file_cache.rb,
opal/lib/opal/nodes/definitions.rb,
opal/lib/opal/builder_processors.rb,
opal/lib/opal/cli_runners/chrome.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/cli_runners/nashorn.rb,
opal/lib/opal/cli_runners/quickjs.rb,
opal/lib/opal/nodes/args/fake_arg.rb,
opal/lib/opal/rewriters/arguments.rb,
opal/lib/opal/rewriters/dump_args.rb,
opal/lib/opal/rewriters/mlhs_args.rb,
opal/lib/opal/rewriters/numblocks.rb,
opal/lib/opal/nodes/node_with_args.rb,
opal/lib/opal/parser/source_buffer.rb,
opal/lib/opal/nodes/args/parameters.rb,
opal/lib/opal/nodes/singleton_class.rb,
opal/lib/opal/parser/default_config.rb,
opal/lib/opal/rewriters/inline_args.rb,
opal/lib/opal/cli_runners/mini_racer.rb,
opal/lib/opal/nodes/args/arity_check.rb,
opal/lib/opal/rewriters/break_finder.rb,
opal/lib/opal/rewriters/for_rewriter.rb,
opal/lib/opal/rewriters/forward_args.rb,
opal/lib/opal/cli_runners/applescript.rb,
opal/lib/opal/rewriters/block_to_iter.rb,
opal/lib/opal/rewriters/dot_js_syntax.rb,
opal/lib/opal/nodes/args/extract_kwarg.rb,
opal/lib/opal/nodes/args/extract_kwargs.rb,
opal/lib/opal/nodes/args/extract_optarg.rb,
opal/lib/opal/nodes/args/extract_restarg.rb,
opal/lib/opal/rewriters/pattern_matching.rb,
opal/lib/opal/rewriters/returnable_logic.rb,
opal/lib/opal/nodes/args/extract_kwoptarg.rb,
opal/lib/opal/nodes/args/extract_post_arg.rb,
opal/lib/opal/rewriters/js_reserved_words.rb,
opal/lib/opal/rewriters/opal_engine_check.rb,
opal/lib/opal/nodes/args/extract_block_arg.rb,
opal/lib/opal/nodes/args/extract_kwrestarg.rb,
opal/lib/opal/nodes/args/prepare_post_args.rb,
opal/lib/opal/nodes/args/initialize_iterarg.rb,
opal/lib/opal/nodes/args/extract_post_optarg.rb,
opal/lib/opal/nodes/node_with_args/shortcuts.rb,
opal/lib/opal/nodes/args/initialize_shadowarg.rb,
opal/lib/opal/nodes/args/ensure_kwargs_are_kwargs.rb,
opal/lib/opal/rewriters/rubyspec/filters_rewriter.rb,
opal/lib/opal/rewriters/binary_operator_assignment.rb,
opal/lib/opal/rewriters/logical_operator_assignment.rb,
opal/lib/opal/rewriters/hashes/key_duplicates_rewriter.rb 
Overview
Opal is a ruby to javascript compiler, with a runtime for running in any JavaScript environment.
Defined Under Namespace
Modules: AST, BuilderProcessors, Cache, CliRunners, Config, Deprecations, ERB, Hike, MagicComments, Nodes, Parser, Rewriters, Rubyspec, SourceMap, UseGem, Util Classes: Builder, CLI, CLIOptions, CompilationError, Compiler, EofContent, Error, Fragment, GemNotFound, OpalBacktraceLocation, ParsingError, PathReader, REPL, Rewriter, RewritingError, SimpleServer, SyntaxError, TiltTemplate
Constant Summary collapse
- Server =
 Opal::Sprockets::Server
- VERSION =
          
WHEN RELEASING: Remember to update RUBY_ENGINE_VERSION in opal/corelib/constants.rb too!
 '1.5.1'
Instance Attribute Summary collapse
- 
  
    
      #cache  ⇒ Object 
    
    
  
  
  
  
    
    
      writeonly
    
  
  
  
  
  
  
    
A Sprockets-compatible cache, for example an instance of Opal::Cache::FileCache or Opal::Cache::NullCache.
 
Attributes included from Deprecations
Class Method Summary collapse
- .add_opal_location_to_error(opal_location, error) ⇒ Object
 - 
  
    
      .append_path(path)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Add a file path to opals load path.
 - 
  
    
      .append_paths(*paths)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Same as #append_path but can take multiple paths.
 - .cache ⇒ Object
 - 
  
    
      .compile(source, options = {})  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    
Compile a string of ruby code into javascript.
 - .core_dir ⇒ Object
 - 
  
    
      .gem_dir  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
We use this file from inside Opal as well, and dir is not yet supported.
 - .opal_location_from_error(error) ⇒ Object
 - .paths ⇒ Object
 - 
  
    
      .reset_paths!  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Resets Opal.paths to the default value (includes
corelib,stdlib,opal/lib,astgem andparsergem). - .std_dir ⇒ Object
 
Methods included from UseGem
Methods included from Deprecations
Instance Attribute Details
#cache=(value) ⇒ Object (writeonly)
A Sprockets-compatible cache, for example an instance of Opal::Cache::FileCache or Opal::Cache::NullCache.
      13 14 15  | 
    
      # File 'opal/lib/opal/cache.rb', line 13 def cache=(value) @cache = value end  | 
  
Class Method Details
.add_opal_location_to_error(opal_location, error) ⇒ Object
      41 42 43 44 45 46  | 
    
      # File 'opal/lib/opal/errors.rb', line 41 def self.add_opal_location_to_error(opal_location, error) backtrace = error.backtrace.to_a backtrace.unshift opal_location.to_s error.set_backtrace backtrace error end  | 
  
.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.
      23 24 25  | 
    
      # File 'opal/lib/opal/paths.rb', line 23 def self.append_path(path) append_paths(path) end  | 
  
.append_paths(*paths) ⇒ Object
Same as #append_path but can take multiple paths.
      28 29 30 31  | 
    
      # File 'opal/lib/opal/paths.rb', line 28 def self.append_paths(*paths) @paths.concat(paths) nil end  | 
  
.cache ⇒ Object
      15 16 17 18 19 20 21 22  | 
    
      # File 'opal/lib/opal/cache.rb', line 15 def self.cache @cache ||= if RUBY_ENGINE == 'opal' || ENV['OPAL_CACHE_DISABLE'] || !Cache::FileCache.find_dir Cache::NullCache.new else Cache::FileCache.new end end  | 
  
.compile(source, options = {}) ⇒ String
Compile a string of ruby code into javascript.
      25 26 27  | 
    
      # File 'opal/lib/opal/compiler.rb', line 25 def self.compile(source, = {}) Compiler.new(source, ).compile end  | 
  
.core_dir ⇒ Object
      10 11 12  | 
    
      # File 'opal/lib/opal/paths.rb', line 10 def self.core_dir File.('../../../opal', __FILE__) end  | 
  
.gem_dir ⇒ Object
We use this file from inside Opal as well, and dir is not yet supported. rubocop:disable Style/ExpandPathArguments
      6 7 8  | 
    
      # File 'opal/lib/opal/paths.rb', line 6 def self.gem_dir File.('../..', __FILE__) end  | 
  
.opal_location_from_error(error) ⇒ Object
      34 35 36 37 38 39  | 
    
      # File 'opal/lib/opal/errors.rb', line 34 def self.opal_location_from_error(error) opal_location = OpalBacktraceLocation.new opal_location.location = error.location if error.respond_to?(:location) opal_location.diagnostic = error.diagnostic if error.respond_to?(:diagnostic) opal_location end  | 
  
.paths ⇒ Object
      72 73 74  | 
    
      # File 'opal/lib/opal/paths.rb', line 72 def self.paths @paths.freeze end  | 
  
.reset_paths! ⇒ Object
Resets Opal.paths to the default value
(includes corelib, stdlib, opal/lib, ast gem and parser gem)
      78 79 80 81 82 83 84 85  | 
    
      # File 'opal/lib/opal/paths.rb', line 78 def self.reset_paths! @paths = [core_dir, std_dir, gem_dir] if RUBY_ENGINE != 'opal' use_gem 'ast' use_gem 'parser' end nil end  | 
  
.std_dir ⇒ Object
      14 15 16  | 
    
      # File 'opal/lib/opal/paths.rb', line 14 def self.std_dir File.('../../../stdlib', __FILE__) end  |