rack-pagespeed 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -3,7 +3,6 @@ source :rubygems
3
3
  gem 'nokogiri', '1.4.4'
4
4
  gem 'rack', '1.2.1'
5
5
  gem 'memcached', '1.0.2'
6
- gem 'mime-types', '1.16'
7
6
  gem 'jsmin', '1.0.1'
8
7
 
9
8
  group :test do
data/Gemfile.lock CHANGED
@@ -52,7 +52,6 @@ DEPENDENCIES
52
52
  capybara (= 0.4.0)
53
53
  jsmin (= 1.0.1)
54
54
  memcached (= 1.0.2)
55
- mime-types (= 1.16)
56
55
  nokogiri (= 1.4.4)
57
56
  rack (= 1.2.1)
58
57
  rspec (= 2.3.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
@@ -1,6 +1,5 @@
1
1
  require 'rack'
2
2
  require 'nokogiri'
3
- require 'mime/types'
4
3
 
5
4
  module Rack
6
5
  class PageSpeed
@@ -35,7 +34,7 @@ module Rack
35
34
  if asset = store[asset_id]
36
35
  [
37
36
  200,
38
- { 'Content-Type' => (MIME::Types.type_for(asset_id).first.content_type rescue 'text/plain') },
37
+ { 'Content-Type' => (Rack::Mime.mime_type(::File.extname(asset_id))) },
39
38
  [asset]
40
39
  ]
41
40
  else
@@ -5,3 +5,4 @@ require "#{lib}/filters/inline_css.rb"
5
5
  require "#{lib}/filters/combine_javascripts.rb"
6
6
  require "#{lib}/filters/combine_css.rb"
7
7
  require "#{lib}/filters/minify_javascripts.rb"
8
+ require "#{lib}/filters/inline_images.rb"
@@ -44,8 +44,15 @@ module Rack::PageSpeed::Filters
44
44
 
45
45
  private
46
46
  def file_for node
47
- path = ::File.join(options[:public], node[node.name == 'script' ? 'src' : 'href'])
48
- ::File.open path if ::File.exists? path
47
+ path = ::File.join options[:public], case node.name
48
+ when 'script'
49
+ node['src']
50
+ when 'img'
51
+ node['src']
52
+ when 'link'
53
+ node['href']
54
+ end
55
+ ::File.open path if ::File.exists? path
49
56
  end
50
57
  end
51
58
  # shortcut
@@ -4,7 +4,7 @@ rescue LoadError
4
4
  require 'digest/md5'
5
5
  end
6
6
 
7
- class Rack::PageSpeed::Filters::CombineCSS < Rack::PageSpeed::Filters::Base
7
+ class Rack::PageSpeed::Filters::CombineCSS < Rack::PageSpeed::Filter
8
8
  requires_store
9
9
  priority 9
10
10
 
@@ -4,7 +4,7 @@ rescue LoadError
4
4
  require 'digest/md5'
5
5
  end
6
6
 
7
- class Rack::PageSpeed::Filters::CombineJavaScripts < Rack::PageSpeed::Filters::Base
7
+ class Rack::PageSpeed::Filters::CombineJavaScripts < Rack::PageSpeed::Filter
8
8
  requires_store
9
9
  name 'combine_javascripts'
10
10
  priority 2
@@ -1,4 +1,4 @@
1
- class Rack::PageSpeed::Filters::InlineCSS < Rack::PageSpeed::Filters::Base
1
+ class Rack::PageSpeed::Filters::InlineCSS < Rack::PageSpeed::Filter
2
2
  priority 10
3
3
 
4
4
  def execute! document
@@ -0,0 +1,17 @@
1
+ class Rack::PageSpeed::Filters::InlineImages < Rack::PageSpeed::Filter
2
+ priority 8
3
+
4
+ def execute! document
5
+ nodes = document.css('img')
6
+ return false unless nodes.count > 0
7
+ nodes.each do |node|
8
+ file = file_for node
9
+ next if !file or file.stat.size > (@options[:max_size] or 1024)
10
+ img = node.clone
11
+ img['src'] = "data:#{Rack::Mime.mime_type(File.extname(file.path))};base64,#{[file.read].pack('m')}"
12
+ img['alt'] = node['alt'] if node['alt']
13
+ node.before img
14
+ node.remove
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,152 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{rack-pagespeed}
8
+ s.version = "0.2.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Julio Cesar Ody"]
12
+ s.date = %q{2011-01-10}
13
+ s.description = %q{Web page speed optimizations at the Rack level}
14
+ s.email = %q{julio@awesomebydesign.com}
15
+ s.extra_rdoc_files = [
16
+ "README.md"
17
+ ]
18
+ s.files = [
19
+ "Gemfile",
20
+ "Gemfile.lock",
21
+ "README.md",
22
+ "Rakefile",
23
+ "VERSION",
24
+ "lib/rack-pagespeed.rb",
25
+ "lib/rack/pagespeed.rb",
26
+ "lib/rack/pagespeed/config.rb",
27
+ "lib/rack/pagespeed/filters/all.rb",
28
+ "lib/rack/pagespeed/filters/base.rb",
29
+ "lib/rack/pagespeed/filters/combine_css.rb",
30
+ "lib/rack/pagespeed/filters/combine_javascripts.rb",
31
+ "lib/rack/pagespeed/filters/inline_css.rb",
32
+ "lib/rack/pagespeed/filters/inline_images.rb",
33
+ "lib/rack/pagespeed/filters/inline_javascripts.rb",
34
+ "lib/rack/pagespeed/filters/minify_javascripts.rb",
35
+ "lib/rack/pagespeed/store/all.rb",
36
+ "lib/rack/pagespeed/store/disk.rb",
37
+ "lib/rack/pagespeed/store/memcached.rb",
38
+ "rack-pagespeed.gemspec",
39
+ "spec/config_spec.rb",
40
+ "spec/filters/combine_css_spec.rb",
41
+ "spec/filters/combine_javascripts_spec.rb",
42
+ "spec/filters/filter_spec.rb",
43
+ "spec/filters/inline_css_spec.rb",
44
+ "spec/filters/inline_images_spec.rb",
45
+ "spec/filters/inline_javascript_spec.rb",
46
+ "spec/filters/minify_javascript_spec.rb",
47
+ "spec/fixtures/all-small-dog-breeds.jpg",
48
+ "spec/fixtures/complex.html",
49
+ "spec/fixtures/foo.js",
50
+ "spec/fixtures/hh-reset.css",
51
+ "spec/fixtures/huge.css",
52
+ "spec/fixtures/iphone.css",
53
+ "spec/fixtures/jquery-1.4.1.min.js",
54
+ "spec/fixtures/medialess1.css",
55
+ "spec/fixtures/medialess2.css",
56
+ "spec/fixtures/mylib.js",
57
+ "spec/fixtures/noexternalcss.html",
58
+ "spec/fixtures/noscripts.html",
59
+ "spec/fixtures/ohno.js",
60
+ "spec/fixtures/reset.css",
61
+ "spec/fixtures/screen.css",
62
+ "spec/fixtures/styles.html",
63
+ "spec/fixtures/zecoolwebsite/css/awesomebydesign.css",
64
+ "spec/fixtures/zecoolwebsite/css/reset.css",
65
+ "spec/fixtures/zecoolwebsite/img/bg-idevice.png",
66
+ "spec/fixtures/zecoolwebsite/img/bg.png",
67
+ "spec/fixtures/zecoolwebsite/img/bottom-left-arrow.png",
68
+ "spec/fixtures/zecoolwebsite/img/bottom-right-arrow.png",
69
+ "spec/fixtures/zecoolwebsite/img/consulting-arrow.png",
70
+ "spec/fixtures/zecoolwebsite/img/design-arrow.png",
71
+ "spec/fixtures/zecoolwebsite/img/prototyping-arrow.png",
72
+ "spec/fixtures/zecoolwebsite/img/top-left-arrow.png",
73
+ "spec/fixtures/zecoolwebsite/img/top-right-arrow.png",
74
+ "spec/fixtures/zecoolwebsite/img/webdev-arrow.png",
75
+ "spec/fixtures/zecoolwebsite/index.html",
76
+ "spec/fixtures/zecoolwebsite/js/awesomebydesign.js",
77
+ "spec/fixtures/zecoolwebsite/js/jquery-1.4.2.min.js",
78
+ "spec/fixtures/zecoolwebsite/js/modernizr-1.5.min.js",
79
+ "spec/fixtures/zecoolwebsite/js/sayhi.js",
80
+ "spec/integration/integration_spec.rb",
81
+ "spec/pagespeed_spec.rb",
82
+ "spec/spec_helper.rb",
83
+ "spec/store/disk_spec.rb",
84
+ "spec/store/memcached_spec.rb"
85
+ ]
86
+ s.homepage = %q{http://github.com/juliocesar/rack-pagespeed}
87
+ s.require_paths = ["lib"]
88
+ s.rubygems_version = %q{1.3.7}
89
+ s.summary = %q{Web page speed optimizations at the Rack level}
90
+ s.test_files = [
91
+ "spec/config_spec.rb",
92
+ "spec/filters/combine_css_spec.rb",
93
+ "spec/filters/combine_javascripts_spec.rb",
94
+ "spec/filters/filter_spec.rb",
95
+ "spec/filters/inline_css_spec.rb",
96
+ "spec/filters/inline_images_spec.rb",
97
+ "spec/filters/inline_javascript_spec.rb",
98
+ "spec/filters/minify_javascript_spec.rb",
99
+ "spec/integration/integration_spec.rb",
100
+ "spec/pagespeed_spec.rb",
101
+ "spec/spec_helper.rb",
102
+ "spec/store/disk_spec.rb",
103
+ "spec/store/memcached_spec.rb"
104
+ ]
105
+
106
+ if s.respond_to? :specification_version then
107
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
108
+ s.specification_version = 3
109
+
110
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
111
+ s.add_runtime_dependency(%q<nokogiri>, ["= 1.4.4"])
112
+ s.add_runtime_dependency(%q<rack>, ["= 1.2.1"])
113
+ s.add_runtime_dependency(%q<memcached>, ["= 1.0.2"])
114
+ s.add_runtime_dependency(%q<jsmin>, ["= 1.0.1"])
115
+ s.add_runtime_dependency(%q<nokogiri>, ["= 1.4.4"])
116
+ s.add_runtime_dependency(%q<rack>, ["= 1.2.1"])
117
+ s.add_runtime_dependency(%q<memcached>, ["= 1.0.2"])
118
+ s.add_runtime_dependency(%q<mime-types>, ["= 1.16"])
119
+ s.add_runtime_dependency(%q<jsmin>, ["= 1.0.1"])
120
+ s.add_development_dependency(%q<rspec>, ["= 2.1.0"])
121
+ s.add_development_dependency(%q<steak>, ["= 1.0.0"])
122
+ s.add_development_dependency(%q<capybara>, ["= 0.4.0"])
123
+ else
124
+ s.add_dependency(%q<nokogiri>, ["= 1.4.4"])
125
+ s.add_dependency(%q<rack>, ["= 1.2.1"])
126
+ s.add_dependency(%q<memcached>, ["= 1.0.2"])
127
+ s.add_dependency(%q<jsmin>, ["= 1.0.1"])
128
+ s.add_dependency(%q<nokogiri>, ["= 1.4.4"])
129
+ s.add_dependency(%q<rack>, ["= 1.2.1"])
130
+ s.add_dependency(%q<memcached>, ["= 1.0.2"])
131
+ s.add_dependency(%q<mime-types>, ["= 1.16"])
132
+ s.add_dependency(%q<jsmin>, ["= 1.0.1"])
133
+ s.add_dependency(%q<rspec>, ["= 2.1.0"])
134
+ s.add_dependency(%q<steak>, ["= 1.0.0"])
135
+ s.add_dependency(%q<capybara>, ["= 0.4.0"])
136
+ end
137
+ else
138
+ s.add_dependency(%q<nokogiri>, ["= 1.4.4"])
139
+ s.add_dependency(%q<rack>, ["= 1.2.1"])
140
+ s.add_dependency(%q<memcached>, ["= 1.0.2"])
141
+ s.add_dependency(%q<jsmin>, ["= 1.0.1"])
142
+ s.add_dependency(%q<nokogiri>, ["= 1.4.4"])
143
+ s.add_dependency(%q<rack>, ["= 1.2.1"])
144
+ s.add_dependency(%q<memcached>, ["= 1.0.2"])
145
+ s.add_dependency(%q<mime-types>, ["= 1.16"])
146
+ s.add_dependency(%q<jsmin>, ["= 1.0.1"])
147
+ s.add_dependency(%q<rspec>, ["= 2.1.0"])
148
+ s.add_dependency(%q<steak>, ["= 1.0.0"])
149
+ s.add_dependency(%q<capybara>, ["= 0.4.0"])
150
+ end
151
+ end
152
+
@@ -8,20 +8,20 @@ describe 'the base filter class' do
8
8
  end
9
9
 
10
10
  it 'when subclassing, it adds the new class to the #available_filters list' do
11
- class Moo < Rack::PageSpeed::Filters::Base; end
11
+ class Moo < Rack::PageSpeed::Filter; end
12
12
  Rack::PageSpeed::Filters::Base.available_filters.should include(Moo)
13
13
  end
14
14
 
15
15
  context 'the #name declaration, which can be used to declare a name which the filter can be called upon' do
16
16
  it 'can be called from inside the class' do
17
- class Boo < Rack::PageSpeed::Filters::Base
17
+ class Boo < Rack::PageSpeed::Filter
18
18
  name 'mooers'
19
19
  end
20
20
  Boo.name.should == 'mooers'
21
21
  end
22
22
 
23
23
  it 'defaults to the class name if not called' do
24
- class BananaSmoothie < Rack::PageSpeed::Filters::Base; end
24
+ class BananaSmoothie < Rack::PageSpeed::Filter; end
25
25
  BananaSmoothie.name.should == 'banana_smoothie'
26
26
  end
27
27
  end
@@ -53,5 +53,10 @@ describe 'the base filter class' do
53
53
  style = Fixtures.complex.at_css('link')
54
54
  @base.send(:file_for, style).stat.size.should == File.size(File.join(Fixtures.path, 'reset.css'))
55
55
  end
56
+
57
+ it "for an image" do
58
+ image = Fixtures.complex.at_css('img[src="all-small-dog-breeds.jpg"]')
59
+ @base.send(:file_for, image).stat.size.should == File.size(File.join(Fixtures.path, 'all-small-dog-breeds.jpg'))
60
+ end
56
61
  end
57
62
  end
@@ -0,0 +1,28 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe 'the inline_css filter' do
4
+ it "is called \"inline_images\" as far as Config is concerned" do
5
+ Rack::PageSpeed::Filters::InlineImages.name.should == 'inline_images'
6
+ end
7
+
8
+ it "is a priority 8 filter" do
9
+ Rack::PageSpeed::Filters::InlineImages.priority.should == 8
10
+ end
11
+
12
+ context "#execute!" do
13
+ before :each do
14
+ @filter = Rack::PageSpeed::Filters::InlineImages.new :public => Fixtures.path, :max_size => 2048
15
+ @document = Fixtures.complex
16
+ @filter.execute! @document
17
+ end
18
+
19
+ it "returns false if there are no images in the document" do
20
+ Rack::PageSpeed::Filters::InlineImages.new(:public => Fixtures.path).execute!(Fixtures.noexternalcss).should be_false
21
+ end
22
+
23
+ it 'inlines images files that are smaller than 1kb in size by default using data URI' do
24
+ image = fixture 'all-small-dog-breeds.jpg'
25
+ @document.at_css('img:last')['src'].should == "data:image/jpeg;base64,#{[image].pack('m')}"
26
+ end
27
+ end
28
+ end
@@ -15,7 +15,7 @@
15
15
  <p>A fixture page</p>
16
16
  <p>With 2 paragraphs<p>
17
17
  <img src="/foobar.jpg" />
18
- <img src="/dog.jpg" />
18
+ <img src="all-small-dog-breeds.jpg" />
19
19
  <p id="test">A test paragraph</p>
20
20
  <p id="foo">Foo bar</p>
21
21
  <div id="footer">And a footer, in poorly semantic HTML</div>
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-pagespeed
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 1
8
+ - 2
9
9
  - 0
10
- version: 0.1.0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Julio Cesar Ody
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-23 00:00:00 +11:00
18
+ date: 2011-01-10 00:00:00 +11:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -66,25 +66,10 @@ dependencies:
66
66
  version: 1.0.2
67
67
  type: :runtime
68
68
  version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
70
- name: mime-types
71
- prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - "="
76
- - !ruby/object:Gem::Version
77
- hash: 47
78
- segments:
79
- - 1
80
- - 16
81
- version: "1.16"
82
- type: :runtime
83
- version_requirements: *id004
84
69
  - !ruby/object:Gem::Dependency
85
70
  name: jsmin
86
71
  prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ requirement: &id004 !ruby/object:Gem::Requirement
88
73
  none: false
89
74
  requirements:
90
75
  - - "="
@@ -96,11 +81,11 @@ dependencies:
96
81
  - 1
97
82
  version: 1.0.1
98
83
  type: :runtime
99
- version_requirements: *id005
84
+ version_requirements: *id004
100
85
  - !ruby/object:Gem::Dependency
101
86
  name: nokogiri
102
87
  prerelease: false
103
- requirement: &id006 !ruby/object:Gem::Requirement
88
+ requirement: &id005 !ruby/object:Gem::Requirement
104
89
  none: false
105
90
  requirements:
106
91
  - - "="
@@ -112,11 +97,11 @@ dependencies:
112
97
  - 4
113
98
  version: 1.4.4
114
99
  type: :runtime
115
- version_requirements: *id006
100
+ version_requirements: *id005
116
101
  - !ruby/object:Gem::Dependency
117
102
  name: rack
118
103
  prerelease: false
119
- requirement: &id007 !ruby/object:Gem::Requirement
104
+ requirement: &id006 !ruby/object:Gem::Requirement
120
105
  none: false
121
106
  requirements:
122
107
  - - "="
@@ -128,11 +113,11 @@ dependencies:
128
113
  - 1
129
114
  version: 1.2.1
130
115
  type: :runtime
131
- version_requirements: *id007
116
+ version_requirements: *id006
132
117
  - !ruby/object:Gem::Dependency
133
118
  name: memcached
134
119
  prerelease: false
135
- requirement: &id008 !ruby/object:Gem::Requirement
120
+ requirement: &id007 !ruby/object:Gem::Requirement
136
121
  none: false
137
122
  requirements:
138
123
  - - "="
@@ -144,11 +129,11 @@ dependencies:
144
129
  - 2
145
130
  version: 1.0.2
146
131
  type: :runtime
147
- version_requirements: *id008
132
+ version_requirements: *id007
148
133
  - !ruby/object:Gem::Dependency
149
134
  name: mime-types
150
135
  prerelease: false
151
- requirement: &id009 !ruby/object:Gem::Requirement
136
+ requirement: &id008 !ruby/object:Gem::Requirement
152
137
  none: false
153
138
  requirements:
154
139
  - - "="
@@ -159,11 +144,11 @@ dependencies:
159
144
  - 16
160
145
  version: "1.16"
161
146
  type: :runtime
162
- version_requirements: *id009
147
+ version_requirements: *id008
163
148
  - !ruby/object:Gem::Dependency
164
149
  name: jsmin
165
150
  prerelease: false
166
- requirement: &id010 !ruby/object:Gem::Requirement
151
+ requirement: &id009 !ruby/object:Gem::Requirement
167
152
  none: false
168
153
  requirements:
169
154
  - - "="
@@ -175,11 +160,11 @@ dependencies:
175
160
  - 1
176
161
  version: 1.0.1
177
162
  type: :runtime
178
- version_requirements: *id010
163
+ version_requirements: *id009
179
164
  - !ruby/object:Gem::Dependency
180
165
  name: rspec
181
166
  prerelease: false
182
- requirement: &id011 !ruby/object:Gem::Requirement
167
+ requirement: &id010 !ruby/object:Gem::Requirement
183
168
  none: false
184
169
  requirements:
185
170
  - - "="
@@ -191,11 +176,11 @@ dependencies:
191
176
  - 0
192
177
  version: 2.1.0
193
178
  type: :development
194
- version_requirements: *id011
179
+ version_requirements: *id010
195
180
  - !ruby/object:Gem::Dependency
196
181
  name: steak
197
182
  prerelease: false
198
- requirement: &id012 !ruby/object:Gem::Requirement
183
+ requirement: &id011 !ruby/object:Gem::Requirement
199
184
  none: false
200
185
  requirements:
201
186
  - - "="
@@ -207,11 +192,11 @@ dependencies:
207
192
  - 0
208
193
  version: 1.0.0
209
194
  type: :development
210
- version_requirements: *id012
195
+ version_requirements: *id011
211
196
  - !ruby/object:Gem::Dependency
212
197
  name: capybara
213
198
  prerelease: false
214
- requirement: &id013 !ruby/object:Gem::Requirement
199
+ requirement: &id012 !ruby/object:Gem::Requirement
215
200
  none: false
216
201
  requirements:
217
202
  - - "="
@@ -223,7 +208,7 @@ dependencies:
223
208
  - 0
224
209
  version: 0.4.0
225
210
  type: :development
226
- version_requirements: *id013
211
+ version_requirements: *id012
227
212
  description: Web page speed optimizations at the Rack level
228
213
  email: julio@awesomebydesign.com
229
214
  executables: []
@@ -246,18 +231,22 @@ files:
246
231
  - lib/rack/pagespeed/filters/combine_css.rb
247
232
  - lib/rack/pagespeed/filters/combine_javascripts.rb
248
233
  - lib/rack/pagespeed/filters/inline_css.rb
234
+ - lib/rack/pagespeed/filters/inline_images.rb
249
235
  - lib/rack/pagespeed/filters/inline_javascripts.rb
250
236
  - lib/rack/pagespeed/filters/minify_javascripts.rb
251
237
  - lib/rack/pagespeed/store/all.rb
252
238
  - lib/rack/pagespeed/store/disk.rb
253
239
  - lib/rack/pagespeed/store/memcached.rb
240
+ - rack-pagespeed.gemspec
254
241
  - spec/config_spec.rb
255
242
  - spec/filters/combine_css_spec.rb
256
243
  - spec/filters/combine_javascripts_spec.rb
257
244
  - spec/filters/filter_spec.rb
258
245
  - spec/filters/inline_css_spec.rb
246
+ - spec/filters/inline_images_spec.rb
259
247
  - spec/filters/inline_javascript_spec.rb
260
248
  - spec/filters/minify_javascript_spec.rb
249
+ - spec/fixtures/all-small-dog-breeds.jpg
261
250
  - spec/fixtures/complex.html
262
251
  - spec/fixtures/foo.js
263
252
  - spec/fixtures/hh-reset.css
@@ -335,6 +324,7 @@ test_files:
335
324
  - spec/filters/combine_javascripts_spec.rb
336
325
  - spec/filters/filter_spec.rb
337
326
  - spec/filters/inline_css_spec.rb
327
+ - spec/filters/inline_images_spec.rb
338
328
  - spec/filters/inline_javascript_spec.rb
339
329
  - spec/filters/minify_javascript_spec.rb
340
330
  - spec/integration/integration_spec.rb