Class: Opal::Processor
- Inherits:
-
Tilt::Template
- Object
- Tilt::Template
- Opal::Processor
- Defined in:
- lib/opal/sprockets/processor.rb
Overview
The Processor class is used to make ruby files (with rb or opal extensions) available to any sprockets based server. Processor will then get passed any ruby source file to build. There are some options you can override globally which effect how certain ruby features are handled:
* method_missing_enabled [true by default]
* optimized_operators_enabled [true by default]
* arity_check_enabled [false by default]
* const_missing_enabled [true by default]
* dynamic_require_severity [true by default]
* source_map_enabled [true by default]
* irb_enabled [false by default]
Class Attribute Summary collapse
-
.arity_check_enabled ⇒ Object
Returns the value of attribute arity_check_enabled.
-
.const_missing_enabled ⇒ Object
Returns the value of attribute const_missing_enabled.
-
.dynamic_require_severity ⇒ Object
Returns the value of attribute dynamic_require_severity.
-
.irb_enabled ⇒ Object
Returns the value of attribute irb_enabled.
-
.method_missing_enabled ⇒ Object
Returns the value of attribute method_missing_enabled.
-
.source_map_enabled ⇒ Object
Returns the value of attribute source_map_enabled.
Class Method Summary collapse
Instance Method Summary collapse
- #evaluate(context, locals, &block) ⇒ Object
- #find_opal_require(environment, r) ⇒ Object
- #initialize_engine ⇒ Object
- #prefix ⇒ Object
- #prepare ⇒ Object
- #source_file_url(context) ⇒ Object
- #source_map_url(context) ⇒ Object
- #stubbed_file?(name) ⇒ Boolean
Class Attribute Details
.arity_check_enabled ⇒ Object
Returns the value of attribute arity_check_enabled.
37 38 39 |
# File 'lib/opal/sprockets/processor.rb', line 37 def arity_check_enabled @arity_check_enabled end |
.const_missing_enabled ⇒ Object
Returns the value of attribute const_missing_enabled.
38 39 40 |
# File 'lib/opal/sprockets/processor.rb', line 38 def const_missing_enabled @const_missing_enabled end |
.dynamic_require_severity ⇒ Object
Returns the value of attribute dynamic_require_severity.
39 40 41 |
# File 'lib/opal/sprockets/processor.rb', line 39 def dynamic_require_severity @dynamic_require_severity end |
.irb_enabled ⇒ Object
Returns the value of attribute irb_enabled.
41 42 43 |
# File 'lib/opal/sprockets/processor.rb', line 41 def irb_enabled @irb_enabled end |
.method_missing_enabled ⇒ Object
Returns the value of attribute method_missing_enabled.
36 37 38 |
# File 'lib/opal/sprockets/processor.rb', line 36 def method_missing_enabled @method_missing_enabled end |
.source_map_enabled ⇒ Object
Returns the value of attribute source_map_enabled.
40 41 42 |
# File 'lib/opal/sprockets/processor.rb', line 40 def source_map_enabled @source_map_enabled end |
Class Method Details
.engine_initialized? ⇒ Boolean
31 32 33 |
# File 'lib/opal/sprockets/processor.rb', line 31 def self.engine_initialized? true end |
.stub_file(name) ⇒ Object
51 52 53 |
# File 'lib/opal/sprockets/processor.rb', line 51 def self.stub_file(name) stubbed_files << name.to_s end |
.stubbed_files ⇒ Object
55 56 57 |
# File 'lib/opal/sprockets/processor.rb', line 55 def self.stubbed_files @stubbed_files ||= Set.new end |
Instance Method Details
#evaluate(context, locals, &block) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/opal/sprockets/processor.rb', line 66 def evaluate(context, locals, &block) = { :method_missing => self.class.method_missing_enabled, :arity_check => self.class.arity_check_enabled, :const_missing => self.class.const_missing_enabled, :dynamic_require_severity => self.class.dynamic_require_severity, :irb => self.class.irb_enabled, :file => context.logical_path, } compiler = Opal::Compiler.new result = compiler.compile data, compiler.requires.each do |r| next if stubbed_file? r path = find_opal_require context.environment, r context.require_asset path end if self.class.source_map_enabled $OPAL_SOURCE_MAPS[context.pathname] = compiler.source_map(source_file_url(context)).to_s "#{result}\n//@ sourceMappingURL=#{source_map_url(context)}\n" else result end end |
#find_opal_require(environment, r) ⇒ Object
109 110 111 112 113 114 115 |
# File 'lib/opal/sprockets/processor.rb', line 109 def find_opal_require(environment, r) path = environment.paths.find do |p| File.exist?(File.join(p, "#{r}.rb")) end path ? File.join(path, "#{r}.rb") : r end |
#initialize_engine ⇒ Object
59 60 61 |
# File 'lib/opal/sprockets/processor.rb', line 59 def initialize_engine require_template_library 'opal' end |
#prefix ⇒ Object
101 102 103 |
# File 'lib/opal/sprockets/processor.rb', line 101 def prefix "/__opal_source_maps__" end |
#prepare ⇒ Object
63 64 |
# File 'lib/opal/sprockets/processor.rb', line 63 def prepare end |
#source_file_url(context) ⇒ Object
97 98 99 |
# File 'lib/opal/sprockets/processor.rb', line 97 def source_file_url(context) "#{prefix}/#{context.logical_path.to_s}" end |
#source_map_url(context) ⇒ Object
93 94 95 |
# File 'lib/opal/sprockets/processor.rb', line 93 def source_map_url(context) "#{prefix}/#{context.logical_path}.js.map" end |
#stubbed_file?(name) ⇒ Boolean
105 106 107 |
# File 'lib/opal/sprockets/processor.rb', line 105 def stubbed_file?(name) self.class.stubbed_files.include? name end |