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
Constant Summary collapse
- INLINE_JS_REGEX =
/(<script[^>]*>\s*(?:\/\/(?:(?:<!--)|(?:<!\[CDATA\[))\n)?)(.*?)((?:(?:\n\s*)?\/\/(?:(?:-->)|(?:\]\]>)))?\s*<\/script>)/m
Instance Method Summary collapse
-
#call(env) ⇒ Array
Rack interface.
-
#initialize(app, options = {}) ⇒ Rack
constructor
Init.
Constructor Details
#initialize(app, options = {}) ⇒ Rack
Init
36 37 38 39 40 41 42 43 |
# File 'lib/middleman-more/extensions/minify_javascript.rb', line 36 def initialize(app, ={}) @app = app @compressor = [:compressor] @ignore = [:ignore] @inline = [:inline] @content_types = [:content_types] @inline_content_types = [:inline_content_types] end |
Instance Method Details
#call(env) ⇒ Array
Rack interface
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 48 def call(env) status, headers, response = @app.call(env) type = headers['Content-Type'].try(:slice, /^[^;]*/) path = env['PATH_INFO'] minified = if @inline && minifiable_inline?(type) minify_inline(::Middleman::Util.extract_response_text(response)) elsif minifiable?(type) && !ignore?(path) minify(::Middleman::Util.extract_response_text(response)) end if minified headers['Content-Length'] = ::Rack::Utils.bytesize(minified).to_s response = [minified] end [status, headers, response] end |