Sha256: 801d83d992ed29a71af0ba6835d7dabe7e9b373547589cf8ee7bf21f3247d05d

Contents?: true

Size: 880 Bytes

Versions: 4

Compression:

Stored size: 880 Bytes

Contents

begin
  require "yui/compressor"
rescue LoadError
  puts "YUI-Compressor not available. Install it with: gem install yui-compressor"
end
  
module Middleman
  module Rack
    class MinifyJavascript
      def initialize(app, options={})
        @app = app
      end

      def call(env)
        if env["DOWNSTREAM"] && env["PATH_INFO"].match(/\.js$/) && Middleman::Base.enabled?(:minify_javascript)
          compressor = ::YUI::JavaScriptCompressor.new(:munge => true)
          
          source = env["DOWNSTREAM"][2].is_a?(::Rack::File) ? File.read(env["DOWNSTREAM"][2].path) : env["DOWNSTREAM"][2]
          env["DOWNSTREAM"][2] = compressor.compress(source)
          env["DOWNSTREAM"][1]["Content-Length"] = ::Rack::Utils.bytesize(env["DOWNSTREAM"][2]).to_s
        end
        
        @app.call(env)
      end
    end
  end
end

# Middleman::Base.supported_formats << "js"

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
middleman-0.12.2 lib/middleman/rack/minify_javascript.rb
middleman-0.12.1 lib/middleman/rack/minify_javascript.rb
middleman-0.12.0.pre3 lib/middleman/rack/minify_javascript.rb
middleman-0.12.0.pre2 lib/middleman/rack/minify_javascript.rb