Class: Middleman::Extensions::MinifyJavascript::Rack
- Inherits:
-
Object
- Object
- Middleman::Extensions::MinifyJavascript::Rack
- Defined in:
- lib/middleman-more/extensions/minify_javascript.rb
Overview
Rack middleware to look for JS and compress it
Instance Method Summary collapse
-
#call(env) ⇒ Array
Rack interface.
-
#initialize(app, options = {}) ⇒ Rack
constructor
Init.
Constructor Details
#initialize(app, options = {}) ⇒ Rack
Init
31 32 33 34 35 36 |
# File 'lib/middleman-more/extensions/minify_javascript.rb', line 31 def initialize(app, ={}) @app = app @compressor = [:compressor] @ignore = [:ignore] @inline = [:inline] end |
Instance Method Details
#call(env) ⇒ Array
Rack interface
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/middleman-more/extensions/minify_javascript.rb', line 41 def call(env) status, headers, response = @app.call(env) path = env["PATH_INFO"] begin if @inline && (path.end_with?('.html') || path.end_with?('.php')) uncompressed_source = ::Middleman::Util.extract_response_text(response) minified = minify_inline_content(uncompressed_source) headers["Content-Length"] = ::Rack::Utils.bytesize(minified).to_s response = [minified] elsif path.end_with?('.js') && @ignore.none? {|ignore| Middleman::Util.path_match(ignore, path) } uncompressed_source = ::Middleman::Util.extract_response_text(response) minified = @compressor.compress(uncompressed_source) headers["Content-Length"] = ::Rack::Utils.bytesize(minified).to_s response = [minified] end rescue ExecJS::ProgramError => e warn "WARNING: Couldn't compress JavaScript in #{path}: #{e.}" end [status, headers, response] end |