Module: Opal::Sprockets::SourceMapHeaderPatch
- Defined in:
- opal/lib/opal/sprockets/source_map_header_patch.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#headers_with_opal_source_maps(env, asset, length) ⇒ Object
Adds the source map header to all sprocket responses for assets with a .rb or .opal extension in the extension chain.
Class Method Details
.included(base) ⇒ Object
17 18 19 20 21 |
# File 'opal/lib/opal/sprockets/source_map_header_patch.rb', line 17 def self.included(base) # Poor man's alias_method_chain :) base.send(:alias_method, :headers_without_opal_source_maps, :headers) base.send(:alias_method, :headers, :headers_with_opal_source_maps) end |
.inject!(prefix) ⇒ Object
23 24 25 26 27 28 |
# File 'opal/lib/opal/sprockets/source_map_header_patch.rb', line 23 def self.inject!(prefix) self.prefix = prefix unless ::Sprockets::Server.ancestors.include?(self) ::Sprockets::Server.send :include, self end end |
.prefix ⇒ Object
30 31 32 |
# File 'opal/lib/opal/sprockets/source_map_header_patch.rb', line 30 def self.prefix @prefix end |
.prefix=(val) ⇒ Object
34 35 36 |
# File 'opal/lib/opal/sprockets/source_map_header_patch.rb', line 34 def self.prefix= val @prefix = val end |
Instance Method Details
#headers_with_opal_source_maps(env, asset, length) ⇒ Object
Adds the source map header to all sprocket responses for assets with a .rb or .opal extension in the extension chain.
8 9 10 11 12 13 14 15 |
# File 'opal/lib/opal/sprockets/source_map_header_patch.rb', line 8 def headers_with_opal_source_maps(env, asset, length) headers_without_opal_source_maps(env, asset, length).tap do |current_headers| if asset.pathname.to_s =~ /\.(rb|opal)\b/ base_path = asset.logical_path.gsub('.js', '') current_headers['X-SourceMap'] = "#{::Opal::Sprockets::SourceMapHeaderPatch.prefix}/#{base_path}.map" end end end |