Sha256: 8a3473337cd484c5cded4abbb0b1c15364657021718759a9f91845ac2ed725d7
Contents?: true
Size: 1.39 KB
Versions: 2
Compression:
Stored size: 1.39 KB
Contents
module HtmlCompressor class Rack DEFAULT_OPTIONS = { :enabled => true, :remove_multi_spaces => true, :remove_comments => true, :remove_intertag_spaces => false, :remove_quotes => true, :compress_css => false, :compress_javascript => false, :simple_doctype => false, :remove_script_attributes => true, :remove_style_attributes => true, :remove_link_attributes => true, :remove_form_attributes => false, :remove_input_attributes => true, :remove_javascript_protocol => true, :remove_http_protocol => true, :remove_https_protocol => false, :preserve_line_breaks => false, :simple_boolean_attributes => true } def initialize app, options = {} @app = app options = DEFAULT_OPTIONS.merge(options) @compressor = HtmlCompressor::Compressor.new(options) end def call env status, headers, body = @app.call(env) if headers.key? 'Content-Type' and headers['Content-Type'] =~ /html/ content = '' body.each do |part| content << part end content = @compressor.compress(content) headers['Content-Length'] = content.length.to_s if headers['Content-Length'] [status, headers, [content]] else [status, headers, body] end ensure body.close if body.respond_to?(:close) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
htmlcompressor-0.0.6 | lib/htmlcompressor/rack.rb |
htmlcompressor-0.0.5 | lib/htmlcompressor/rack.rb |