htmlcompressor 0.0.7 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.travis.yml +10 -0
- data/README.md +52 -0
- data/Rakefile +19 -1
- data/htmlcompressor.gemspec +3 -3
- data/lib/htmlcompressor/compressor.rb +65 -20
- data/lib/htmlcompressor/exceptions.rb +3 -0
- data/lib/htmlcompressor/version.rb +1 -1
- data/test/compressor_closure_test.rb +22 -0
- data/test/compressor_test.rb +3 -54
- data/test/compressor_yui_test.rb +35 -0
- data/test/resources/html/testCompressJavaScriptClosureResult.html +1 -1
- data/test/test_helper.rb +22 -0
- metadata +26 -28
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 92b6265bccddfa29250def7fd2807fb2335347cf
|
4
|
+
data.tar.gz: 924523a9f8eb60ce59fdd4986ae2e1393bfd183e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 974bd79294afdb72d616d06bc4f55fc5838cf76733eb894bd22c9a5751fdb1c84c6e5472862fabae249d3fcee6aceacc2b794317fb0ae9d3f0d0a983467e0129
|
7
|
+
data.tar.gz: 22cdb3b24b803a1557180151c09abdef893175a073773082ffb67356b890633b5c42bebafbdae3e78d3c56379f561798e4f9e892aed78e7043836a404eca2b77
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# Htmlcompressor
|
2
|
+
[](https://travis-ci.org/paolochiodi/htmlcompressor)
|
2
3
|
|
3
4
|
## Put your html on a diet
|
4
5
|
|
@@ -79,6 +80,57 @@ Rails 2.3 users may need to add
|
|
79
80
|
require 'htmlcompressor'
|
80
81
|
```
|
81
82
|
|
83
|
+
## CSS and JavaScript Compression
|
84
|
+
|
85
|
+
By default CSS/JS compression is disabled.
|
86
|
+
In order to minify in page javascript and css, you need to supply a compressor in the options hash.
|
87
|
+
A compressor can be `:yui` or `:closure` or any object that responds to `:compress`. E.g.: `compressed = compressor.compress(source)`
|
88
|
+
|
89
|
+
```ruby
|
90
|
+
|
91
|
+
class MyCompressor
|
92
|
+
|
93
|
+
def compress(source)
|
94
|
+
return 'minified'
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
options = {
|
100
|
+
:compress_css => true,
|
101
|
+
:css_compressor => MyCompressor.new,
|
102
|
+
:compress_javascript => true,
|
103
|
+
:javascript_compressor => MyCompressor.new
|
104
|
+
}
|
105
|
+
|
106
|
+
```
|
107
|
+
|
108
|
+
Please note that in order to use yui or closure compilers you need to manually add them to the Gemfile
|
109
|
+
|
110
|
+
```ruby
|
111
|
+
gem 'yui-compressor'
|
112
|
+
|
113
|
+
...
|
114
|
+
|
115
|
+
options = {
|
116
|
+
:compress_javscript => true,
|
117
|
+
:javascript_compressor => :yui,
|
118
|
+
:compress_css => true
|
119
|
+
:css_compressor => :yui
|
120
|
+
}
|
121
|
+
```
|
122
|
+
|
123
|
+
```ruby
|
124
|
+
gem 'closure-compiler'
|
125
|
+
|
126
|
+
...
|
127
|
+
|
128
|
+
options = {
|
129
|
+
:compress_javascript => true,
|
130
|
+
:javascript_compressor => :closure
|
131
|
+
}
|
132
|
+
```
|
133
|
+
|
82
134
|
## Statistics
|
83
135
|
|
84
136
|
As of now the statistic framework hasn't been ported. Refer to original [htmlcompressor documentation](http://code.google.com/p/htmlcompressor/) for statistics on minified pages.
|
data/Rakefile
CHANGED
@@ -1,2 +1,20 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
|
-
|
2
|
+
begin
|
3
|
+
require 'bundler/setup'
|
4
|
+
rescue LoadError
|
5
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
6
|
+
end
|
7
|
+
|
8
|
+
Bundler::GemHelper.install_tasks
|
9
|
+
|
10
|
+
require 'rake/testtask'
|
11
|
+
|
12
|
+
Rake::TestTask.new(:test) do |t|
|
13
|
+
t.libs << 'lib'
|
14
|
+
t.libs << 'test'
|
15
|
+
t.pattern = 'test/**/*_test.rb'
|
16
|
+
t.verbose = false
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
task :default => :test
|
data/htmlcompressor.gemspec
CHANGED
@@ -8,10 +8,10 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.summary = %q{htmlcompressor provides a class and a rack middleware to minify html pages}
|
9
9
|
gem.homepage = ""
|
10
10
|
|
11
|
-
gem.
|
12
|
-
gem.add_development_dependency 'closure-compiler', '~> 1.1
|
11
|
+
gem.add_development_dependency 'yui-compressor', '~> 0.9'
|
12
|
+
gem.add_development_dependency 'closure-compiler', '~> 1.1'
|
13
13
|
gem.add_development_dependency 'rake'
|
14
|
-
gem.add_development_dependency 'minitest'
|
14
|
+
gem.add_development_dependency 'minitest', '~> 5.0'
|
15
15
|
|
16
16
|
gem.files = `git ls-files`.split($\)
|
17
17
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require "
|
1
|
+
require "htmlcompressor/exceptions"
|
2
2
|
|
3
3
|
module HtmlCompressor
|
4
4
|
class Compressor
|
@@ -92,6 +92,15 @@ module HtmlCompressor
|
|
92
92
|
TEMP_SKIP_PATTERN = Regexp.new("%%%~COMPRESS~SKIP~(\\d+?)~%%%")
|
93
93
|
TEMP_LINE_BREAK_PATTERN = Regexp.new("%%%~COMPRESS~LT~(\\d+?)~%%%")
|
94
94
|
|
95
|
+
JAVASCRIPT_COMPRESSORS_OPTIONS = {
|
96
|
+
:closure => { :compilation_level => 'ADVANCED_OPTIMIZATIONS' },
|
97
|
+
:yui => { :munge => true, :preserve_semicolons => true, :optimize => true, :line_break => nil }
|
98
|
+
}
|
99
|
+
|
100
|
+
CSS_COMPRESSORS_OPTIONS = {
|
101
|
+
:yui => { :line_break => -1 }
|
102
|
+
}
|
103
|
+
|
95
104
|
DEFAULT_OPTIONS = {
|
96
105
|
:enabled => true,
|
97
106
|
|
@@ -100,6 +109,8 @@ module HtmlCompressor
|
|
100
109
|
:remove_multi_spaces => true,
|
101
110
|
|
102
111
|
# optional settings
|
112
|
+
:javascript_compressor => :yui,
|
113
|
+
:css_compressor => :yui,
|
103
114
|
:remove_intertag_spaces => false,
|
104
115
|
:remove_quotes => false,
|
105
116
|
:compress_javascript => false,
|
@@ -126,11 +137,42 @@ module HtmlCompressor
|
|
126
137
|
|
127
138
|
@options = DEFAULT_OPTIONS.merge(options)
|
128
139
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
@
|
140
|
+
detect_external_compressors
|
141
|
+
end
|
142
|
+
|
143
|
+
def detect_external_compressors
|
144
|
+
@javascript_compressors = {}
|
145
|
+
@css_compressors = {}
|
146
|
+
|
147
|
+
# Try Closure.
|
148
|
+
begin
|
149
|
+
require 'closure-compiler'
|
150
|
+
@javascript_compressors[:closure] = Closure::Compiler
|
151
|
+
rescue LoadError
|
152
|
+
end
|
153
|
+
|
154
|
+
# Try YUI
|
155
|
+
begin
|
156
|
+
require 'yui/compressor'
|
157
|
+
@javascript_compressors[:yui] = YUI::JavaScriptCompressor
|
158
|
+
@css_compressors[:yui] = YUI::CssCompressor
|
159
|
+
rescue LoadError
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
def get_javascript_compressor(compressor_name)
|
164
|
+
|
165
|
+
if @javascript_compressors.has_key? compressor_name
|
166
|
+
@javascript_compressors[compressor_name].new JAVASCRIPT_COMPRESSORS_OPTIONS[compressor_name]
|
167
|
+
end
|
168
|
+
|
169
|
+
end
|
170
|
+
|
171
|
+
def get_css_compressor(compressor_name)
|
172
|
+
|
173
|
+
if @css_compressors.has_key? compressor_name
|
174
|
+
@css_compressors[compressor_name].new CSS_COMPRESSORS_OPTIONS[compressor_name]
|
175
|
+
end
|
134
176
|
|
135
177
|
end
|
136
178
|
|
@@ -465,15 +507,14 @@ module HtmlCompressor
|
|
465
507
|
|
466
508
|
def compress_javascript(source)
|
467
509
|
# set default javascript compressor
|
468
|
-
|
510
|
+
javascript_compressor = @options[:javascript_compressor]
|
511
|
+
|
512
|
+
if javascript_compressor.is_a?(Symbol)
|
513
|
+
javascript_compressor = get_javascript_compressor(javascript_compressor)
|
514
|
+
end
|
469
515
|
|
470
|
-
if
|
471
|
-
|
472
|
-
:munge => !@yuiJsNoMunge,
|
473
|
-
:preserve_semicolons => !@yuiJsDisableOptimizations,
|
474
|
-
:optimize => !@yuiJsDisableOptimizations,
|
475
|
-
:line_break => @yuiJsLineBreak
|
476
|
-
)
|
516
|
+
if javascript_compressor.nil?
|
517
|
+
raise MissingCompressorError, "No JavaScript Compressor. Please set the :javascript_compressor option"
|
477
518
|
end
|
478
519
|
|
479
520
|
# detect CDATA wrapper
|
@@ -483,7 +524,7 @@ module HtmlCompressor
|
|
483
524
|
source = $1
|
484
525
|
end
|
485
526
|
|
486
|
-
result =
|
527
|
+
result = javascript_compressor.compress(source).strip
|
487
528
|
|
488
529
|
if cdataWrapper
|
489
530
|
result = "<![CDATA[" + result + "]]>"
|
@@ -494,10 +535,14 @@ module HtmlCompressor
|
|
494
535
|
|
495
536
|
def compress_css_styles(source)
|
496
537
|
# set default css compressor
|
497
|
-
|
538
|
+
css_compressor = @options[:css_compressor]
|
539
|
+
|
540
|
+
if css_compressor.is_a?(Symbol)
|
541
|
+
css_compressor = get_css_compressor(css_compressor)
|
542
|
+
end
|
498
543
|
|
499
|
-
if
|
500
|
-
|
544
|
+
if css_compressor.nil?
|
545
|
+
raise MissingCompressorError, "No CSS Compressor. Please set the :css_compressor option"
|
501
546
|
end
|
502
547
|
|
503
548
|
# detect CDATA wrapper
|
@@ -507,7 +552,7 @@ module HtmlCompressor
|
|
507
552
|
source = $1
|
508
553
|
end
|
509
554
|
|
510
|
-
result =
|
555
|
+
result = css_compressor.compress(source)
|
511
556
|
|
512
557
|
if cdataWrapper
|
513
558
|
result = "<![CDATA[" + result + "]]>"
|
@@ -782,4 +827,4 @@ module HtmlCompressor
|
|
782
827
|
|
783
828
|
end
|
784
829
|
|
785
|
-
end
|
830
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module HtmlCompressor
|
4
|
+
|
5
|
+
class TestCompressor < Minitest::Test
|
6
|
+
|
7
|
+
def test_compress_java_script_closure
|
8
|
+
source = read_resource("testCompressJavaScript.html")
|
9
|
+
result = read_resource("testCompressJavaScriptClosureResult.html")
|
10
|
+
|
11
|
+
compressor = Compressor.new(
|
12
|
+
:compress_javascript => true,
|
13
|
+
:javascript_compressor => :closure,
|
14
|
+
:remove_intertag_spaces => true
|
15
|
+
)
|
16
|
+
|
17
|
+
assert_equal result, compressor.compress(source)
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
data/test/compressor_test.rb
CHANGED
@@ -1,10 +1,8 @@
|
|
1
|
-
require '
|
2
|
-
require 'minitest/autorun'
|
3
|
-
require 'closure-compiler'
|
1
|
+
require 'test_helper'
|
4
2
|
|
5
3
|
module HtmlCompressor
|
6
4
|
|
7
|
-
class TestCompressor <
|
5
|
+
class TestCompressor < Minitest::Test
|
8
6
|
|
9
7
|
def test_enabled
|
10
8
|
source = read_resource("testEnabled.html")
|
@@ -80,43 +78,6 @@ module HtmlCompressor
|
|
80
78
|
assert_equal result, compressor.compress(source)
|
81
79
|
end
|
82
80
|
|
83
|
-
def test_compress_javascript_yui
|
84
|
-
source = read_resource("testCompressJavaScript.html");
|
85
|
-
result = read_resource("testCompressJavaScriptYuiResult.html");
|
86
|
-
|
87
|
-
compressor = Compressor.new(
|
88
|
-
:compress_javascript => true,
|
89
|
-
:remove_intertag_spaces => true
|
90
|
-
)
|
91
|
-
|
92
|
-
assert_equal result, compressor.compress(source)
|
93
|
-
end
|
94
|
-
|
95
|
-
def test_compress_java_script_closure
|
96
|
-
source = read_resource("testCompressJavaScript.html")
|
97
|
-
result = read_resource("testCompressJavaScriptClosureResult.html")
|
98
|
-
|
99
|
-
compressor = Compressor.new(
|
100
|
-
:compress_javascript => true,
|
101
|
-
:javascript_compressor => Closure::Compiler.new(:compilation_level => 'ADVANCED_OPTIMIZATIONS'),
|
102
|
-
:remove_intertag_spaces => true
|
103
|
-
)
|
104
|
-
|
105
|
-
assert_equal result, compressor.compress(source)
|
106
|
-
end
|
107
|
-
|
108
|
-
def test_compress_css
|
109
|
-
source = read_resource("testCompressCss.html")
|
110
|
-
result = read_resource("testCompressCssResult.html")
|
111
|
-
|
112
|
-
compressor = Compressor.new(
|
113
|
-
:compress_css => true,
|
114
|
-
:remove_intertag_spaces => true
|
115
|
-
)
|
116
|
-
|
117
|
-
assert_equal result, compressor.compress(source)
|
118
|
-
end
|
119
|
-
|
120
81
|
def test_compress
|
121
82
|
source = read_resource("testCompress.html")
|
122
83
|
result = read_resource("testCompressResult.html")
|
@@ -246,18 +207,6 @@ module HtmlCompressor
|
|
246
207
|
assert_equal result, compressor.compress(source)
|
247
208
|
end
|
248
209
|
|
249
|
-
private
|
250
|
-
|
251
|
-
def resource_path
|
252
|
-
File.join File.expand_path(File.dirname(__FILE__)), 'resources', 'html'
|
253
|
-
end
|
254
|
-
|
255
|
-
def read_resource file
|
256
|
-
File.open File.join(resource_path, file), 'r' do |f|
|
257
|
-
return f.readlines.join('')
|
258
|
-
end
|
259
|
-
end
|
260
|
-
|
261
210
|
end
|
262
211
|
|
263
|
-
end
|
212
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module HtmlCompressor
|
4
|
+
|
5
|
+
class TestCompressor < Minitest::Test
|
6
|
+
|
7
|
+
def test_compress_javascript_yui
|
8
|
+
source = read_resource("testCompressJavaScript.html");
|
9
|
+
result = read_resource("testCompressJavaScriptYuiResult.html");
|
10
|
+
|
11
|
+
compressor = Compressor.new(
|
12
|
+
:compress_javascript => true,
|
13
|
+
:javascript_compressor => :yui,
|
14
|
+
:remove_intertag_spaces => true
|
15
|
+
)
|
16
|
+
|
17
|
+
assert_equal result, compressor.compress(source)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_compress_css
|
21
|
+
source = read_resource("testCompressCss.html")
|
22
|
+
result = read_resource("testCompressCssResult.html")
|
23
|
+
|
24
|
+
compressor = Compressor.new(
|
25
|
+
:compress_css => true,
|
26
|
+
:css_compressor => :yui,
|
27
|
+
:remove_intertag_spaces => true
|
28
|
+
)
|
29
|
+
|
30
|
+
assert_equal result, compressor.compress(source)
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<script type="text/javascript">var
|
1
|
+
<script type="text/javascript">var a=0,a=a+1;alert(a);</script><script><![CDATA[var a=0,a=a+1;alert(a);]]></script><pre>
|
2
2
|
<script>
|
3
3
|
var i = 0; //comment
|
4
4
|
i = i + 1;
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'htmlcompressor/compressor'
|
3
|
+
|
4
|
+
module HtmlCompressor
|
5
|
+
|
6
|
+
class TestCompressor < Minitest::Test
|
7
|
+
|
8
|
+
private
|
9
|
+
|
10
|
+
def resource_path
|
11
|
+
File.join File.expand_path(File.dirname(__FILE__)), 'resources', 'html'
|
12
|
+
end
|
13
|
+
|
14
|
+
def read_resource file
|
15
|
+
File.open File.join(resource_path, file), 'r' do |f|
|
16
|
+
return f.readlines.join('')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
metadata
CHANGED
@@ -1,80 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: htmlcompressor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Paolo Chiodi
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-05-05 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: yui-compressor
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.9
|
22
|
-
type: :
|
19
|
+
version: '0.9'
|
20
|
+
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.9
|
26
|
+
version: '0.9'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: closure-compiler
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: 1.1
|
33
|
+
version: '1.1'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: 1.1
|
40
|
+
version: '1.1'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rake
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: minitest
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
61
|
+
version: '5.0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
68
|
+
version: '5.0'
|
78
69
|
description: Put your html on a diet
|
79
70
|
email:
|
80
71
|
- chiodi84@gmail.com
|
@@ -83,6 +74,7 @@ extensions: []
|
|
83
74
|
extra_rdoc_files: []
|
84
75
|
files:
|
85
76
|
- .gitignore
|
77
|
+
- .travis.yml
|
86
78
|
- CHANGELOG
|
87
79
|
- Gemfile
|
88
80
|
- LICENSE
|
@@ -91,9 +83,12 @@ files:
|
|
91
83
|
- htmlcompressor.gemspec
|
92
84
|
- lib/htmlcompressor.rb
|
93
85
|
- lib/htmlcompressor/compressor.rb
|
86
|
+
- lib/htmlcompressor/exceptions.rb
|
94
87
|
- lib/htmlcompressor/rack.rb
|
95
88
|
- lib/htmlcompressor/version.rb
|
89
|
+
- test/compressor_closure_test.rb
|
96
90
|
- test/compressor_test.rb
|
91
|
+
- test/compressor_yui_test.rb
|
97
92
|
- test/resources/html/.svn/all-wcprops
|
98
93
|
- test/resources/html/.svn/entries
|
99
94
|
- test/resources/html/.svn/prop-base/testRemoveHttpProtocol.html.svn-base
|
@@ -214,32 +209,34 @@ files:
|
|
214
209
|
- test/resources/xml/testRemoveCommentsResult.xml
|
215
210
|
- test/resources/xml/testRemoveIntertagSpaces.xml
|
216
211
|
- test/resources/xml/testRemoveIntertagSpacesResult.xml
|
212
|
+
- test/test_helper.rb
|
217
213
|
homepage: ''
|
218
214
|
licenses: []
|
215
|
+
metadata: {}
|
219
216
|
post_install_message:
|
220
217
|
rdoc_options: []
|
221
218
|
require_paths:
|
222
219
|
- lib
|
223
220
|
required_ruby_version: !ruby/object:Gem::Requirement
|
224
|
-
none: false
|
225
221
|
requirements:
|
226
|
-
- -
|
222
|
+
- - '>='
|
227
223
|
- !ruby/object:Gem::Version
|
228
224
|
version: '0'
|
229
225
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
230
|
-
none: false
|
231
226
|
requirements:
|
232
|
-
- -
|
227
|
+
- - '>='
|
233
228
|
- !ruby/object:Gem::Version
|
234
229
|
version: '0'
|
235
230
|
requirements: []
|
236
231
|
rubyforge_project:
|
237
|
-
rubygems_version: 1.
|
232
|
+
rubygems_version: 2.1.11
|
238
233
|
signing_key:
|
239
|
-
specification_version:
|
234
|
+
specification_version: 4
|
240
235
|
summary: htmlcompressor provides a class and a rack middleware to minify html pages
|
241
236
|
test_files:
|
237
|
+
- test/compressor_closure_test.rb
|
242
238
|
- test/compressor_test.rb
|
239
|
+
- test/compressor_yui_test.rb
|
243
240
|
- test/resources/html/.svn/all-wcprops
|
244
241
|
- test/resources/html/.svn/entries
|
245
242
|
- test/resources/html/.svn/prop-base/testRemoveHttpProtocol.html.svn-base
|
@@ -360,3 +357,4 @@ test_files:
|
|
360
357
|
- test/resources/xml/testRemoveCommentsResult.xml
|
361
358
|
- test/resources/xml/testRemoveIntertagSpaces.xml
|
362
359
|
- test/resources/xml/testRemoveIntertagSpacesResult.xml
|
360
|
+
- test/test_helper.rb
|