h5-min 0.1.2 → 0.2.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.
Files changed (4) hide show
  1. data/Rakefile +2 -11
  2. data/VERSION +1 -1
  3. data/lib/h5-min.rb +16 -1
  4. metadata +3 -3
data/Rakefile CHANGED
@@ -21,17 +21,8 @@ rescue LoadError
21
21
  puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
22
22
  end
23
23
 
24
- require 'spec/rake/spectask'
25
- Spec::Rake::SpecTask.new(:spec) do |spec|
26
- spec.libs << 'lib' << 'spec'
27
- spec.spec_files = FileList['spec/**/*_spec.rb']
28
- end
29
-
30
- Spec::Rake::SpecTask.new(:rcov) do |spec|
31
- spec.libs << 'lib' << 'spec'
32
- spec.pattern = 'spec/**/*_spec.rb'
33
- spec.rcov = true
34
- end
24
+ require 'rspec/core/rake_task'
25
+ RSpec::Core::RakeTask.new(:spec)
35
26
 
36
27
  task :spec => :check_dependencies
37
28
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.2.0
data/lib/h5-min.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'nokogiri'
2
2
  require 'htmlentities'
3
+ require 'tempfile'
3
4
  require_relative 'h5-min/optional'
4
5
 
5
6
  module HTML5
@@ -54,7 +55,7 @@ module HTML5
54
55
  end
55
56
 
56
57
  def cdata_block string
57
- buf << string
58
+ text_node << string
58
59
  end
59
60
 
60
61
  def characters chars
@@ -97,6 +98,7 @@ module HTML5
97
98
  end
98
99
 
99
100
  def format_text_node
101
+ return HTML5.minify_css(text_node) if @stack.last == :style
100
102
  text = format_entities text_node, {quot: ?", apos: ?'}
101
103
  return text if in_pre_element?
102
104
  text.gsub!(/[\n\t]/,'')
@@ -121,6 +123,19 @@ module HTML5
121
123
  end
122
124
  end
123
125
 
126
+ def self.minify_css text
127
+ Tempfile.open('css') do |input|
128
+ input << text
129
+ input.close
130
+ return begin
131
+ `yuicompressor --type css --charset utf-8 #{input.to_path}`
132
+ rescue Errno::ENOENT
133
+ warn "yuicompressor not found; won't minify CSS"
134
+ text
135
+ end
136
+ end
137
+ end
138
+
124
139
  def self.minify html
125
140
  minifier = @minifier.new
126
141
  Nokogiri::HTML::SAX::Parser.new(minifier).parse(html)
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 1
8
7
  - 2
9
- version: 0.1.2
8
+ - 0
9
+ version: 0.2.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Run Paint Run Run
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-07-12 00:00:00 +01:00
17
+ date: 2010-09-26 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency