htmlcompressor 0.0.3 → 0.0.4
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.
- data/CHANGELOG +2 -0
- data/README.md +2 -2
- data/htmlcompressor.gemspec +1 -0
- data/lib/htmlcompressor/compressor.rb +5 -3
- data/lib/htmlcompressor/version.rb +1 -1
- data/test/compressor_test.rb +9 -0
- data/test/resources/html/testCompress.html +3 -2
- data/test/resources/html/testCompressResult.html +1 -1
- data/test/resources/html/testPreserveTextareas.html +2 -0
- data/test/resources/html/testPreserveTextareasResult.html +1 -0
- metadata +44 -15
data/CHANGELOG
CHANGED
data/README.md
CHANGED
@@ -14,8 +14,8 @@ Please note that Htmlcompressor is still in alpha version and need some addition
|
|
14
14
|
Using the compressor class is straightforward:
|
15
15
|
|
16
16
|
```ruby
|
17
|
-
compressor = HtmlCompressor
|
18
|
-
compressor.
|
17
|
+
compressor = HtmlCompressor::Compressor.new
|
18
|
+
compressor.compress('<html><body><div id="compress_me"></div></body></html>')
|
19
19
|
```
|
20
20
|
|
21
21
|
The compressor ships with some default option that may be overwritten passing the options hash to the constructor:
|
data/htmlcompressor.gemspec
CHANGED
@@ -11,6 +11,7 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.add_dependency 'yui-compressor', '~> 0.9.6'
|
12
12
|
gem.add_development_dependency 'closure-compiler', '~> 1.1.5'
|
13
13
|
gem.add_development_dependency 'rake'
|
14
|
+
gem.add_development_dependency 'minitest'
|
14
15
|
|
15
16
|
gem.files = `git ls-files`.split($\)
|
16
17
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -303,13 +303,15 @@ module HtmlCompressor
|
|
303
303
|
# preserve TEXTAREA tags
|
304
304
|
index = -1
|
305
305
|
html = html.gsub(TA_PATTERN) do |match|
|
306
|
+
index += 1
|
307
|
+
|
306
308
|
if $2.strip.length > 0
|
307
309
|
taBlocks << $2
|
308
|
-
index += 1
|
309
|
-
$1 + message_format(TEMP_TEXT_AREA_BLOCK, index) + $3
|
310
310
|
else
|
311
|
-
''
|
311
|
+
taBlocks << ''
|
312
312
|
end
|
313
|
+
|
314
|
+
$1 + message_format(TEMP_TEXT_AREA_BLOCK, index) + $3
|
313
315
|
end
|
314
316
|
|
315
317
|
# preserve line breaks
|
data/test/compressor_test.rb
CHANGED
@@ -237,6 +237,15 @@ module HtmlCompressor
|
|
237
237
|
assert_equal result, compressor.compress(source)
|
238
238
|
end
|
239
239
|
|
240
|
+
def test_preserve_textarea
|
241
|
+
source = read_resource("testPreserveTextareas.html")
|
242
|
+
result = read_resource("testPreserveTextareasResult.html")
|
243
|
+
|
244
|
+
compressor = Compressor.new
|
245
|
+
|
246
|
+
assert_equal result, compressor.compress(source)
|
247
|
+
end
|
248
|
+
|
240
249
|
private
|
241
250
|
|
242
251
|
def resource_path
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<a x="aaa 'bbb' ccc" b="1"> <b onclick = " alert('<a> <b>') " /> <c/>
|
1
|
+
<a x="aaa 'bbb' ccc" b="1"> <b onclick = " alert('<a> <b>') " /> <c/>
|
2
2
|
<d />
|
3
3
|
<pre a = " 1 "> <x /> <y> </pre>
|
4
4
|
<!-- comment -->
|
@@ -7,4 +7,5 @@
|
|
7
7
|
<textarea> <!-- comment --> </textarea>
|
8
8
|
<script> <!-- comment --> </script>
|
9
9
|
<script type="text/x-jquery-tmpl"> <a> <!-- comment --> <b> </script>
|
10
|
-
<style> <!-- comment --> </style>
|
10
|
+
<style> <!-- comment --> </style>
|
11
|
+
<textarea></textarea>
|
@@ -1 +1 @@
|
|
1
|
-
<a x="aaa 'bbb' ccc" b="1"> <b onclick=" alert('<a> <b>') "/> <c/> <d/> <pre a=" 1 "> <x /> <y> </pre> <!--[if lt IE 7 ]><body class="ie6"><![endif]--> <!--[if lt IE 7 ]><body class="ie6"><![endif]--> <pre> <!-- comment --> </pre> <textarea> <!-- comment --> </textarea> <script> <!-- comment --> </script> <script type="text/x-jquery-tmpl"> <a> <b> </script> <style> <!-- comment --> </style>
|
1
|
+
<a x="aaa 'bbb' ccc" b="1"> <b onclick=" alert('<a> <b>') "/> <c/> <d/> <pre a=" 1 "> <x /> <y> </pre> <!--[if lt IE 7 ]><body class="ie6"><![endif]--> <!--[if lt IE 7 ]><body class="ie6"><![endif]--> <pre> <!-- comment --> </pre> <textarea> <!-- comment --> </textarea> <script> <!-- comment --> </script> <script type="text/x-jquery-tmpl"> <a> <b> </script> <style> <!-- comment --> </style> <textarea></textarea>
|
@@ -0,0 +1 @@
|
|
1
|
+
<textarea rows="10"> content </textarea> <textarea></textarea>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: htmlcompressor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: yui-compressor
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 0.9.6
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.9.6
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: closure-compiler
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ~>
|
@@ -32,10 +37,31 @@ dependencies:
|
|
32
37
|
version: 1.1.5
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.1.5
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: rake
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: minitest
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
39
65
|
none: false
|
40
66
|
requirements:
|
41
67
|
- - ! '>='
|
@@ -43,7 +69,12 @@ dependencies:
|
|
43
69
|
version: '0'
|
44
70
|
type: :development
|
45
71
|
prerelease: false
|
46
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
47
78
|
description: Put your html on a diet
|
48
79
|
email:
|
49
80
|
- chiodi84@gmail.com
|
@@ -131,6 +162,8 @@ files:
|
|
131
162
|
- test/resources/html/testPreserveLineBreaksResult.html
|
132
163
|
- test/resources/html/testPreservePatterns.html
|
133
164
|
- test/resources/html/testPreservePatternsResult.html
|
165
|
+
- test/resources/html/testPreserveTextareas.html
|
166
|
+
- test/resources/html/testPreserveTextareasResult.html
|
134
167
|
- test/resources/html/testRemoveComments.html
|
135
168
|
- test/resources/html/testRemoveCommentsResult.html
|
136
169
|
- test/resources/html/testRemoveFormAttributes.html
|
@@ -193,21 +226,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
193
226
|
- - ! '>='
|
194
227
|
- !ruby/object:Gem::Version
|
195
228
|
version: '0'
|
196
|
-
segments:
|
197
|
-
- 0
|
198
|
-
hash: -1615621865656681193
|
199
229
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
200
230
|
none: false
|
201
231
|
requirements:
|
202
232
|
- - ! '>='
|
203
233
|
- !ruby/object:Gem::Version
|
204
234
|
version: '0'
|
205
|
-
segments:
|
206
|
-
- 0
|
207
|
-
hash: -1615621865656681193
|
208
235
|
requirements: []
|
209
236
|
rubyforge_project:
|
210
|
-
rubygems_version: 1.8.
|
237
|
+
rubygems_version: 1.8.23
|
211
238
|
signing_key:
|
212
239
|
specification_version: 3
|
213
240
|
summary: htmlcompressor provides a class and a rack middleware to minify html pages
|
@@ -281,6 +308,8 @@ test_files:
|
|
281
308
|
- test/resources/html/testPreserveLineBreaksResult.html
|
282
309
|
- test/resources/html/testPreservePatterns.html
|
283
310
|
- test/resources/html/testPreservePatternsResult.html
|
311
|
+
- test/resources/html/testPreserveTextareas.html
|
312
|
+
- test/resources/html/testPreserveTextareasResult.html
|
284
313
|
- test/resources/html/testRemoveComments.html
|
285
314
|
- test/resources/html/testRemoveCommentsResult.html
|
286
315
|
- test/resources/html/testRemoveFormAttributes.html
|