rack-pagespeed 1.0.5 → 1.0.6
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/Gemfile +0 -1
- data/Gemfile.lock +0 -2
- data/VERSION +1 -1
- data/lib/rack/pagespeed.rb +5 -1
- data/lib/rack/pagespeed/config.rb +13 -6
- data/lib/rack/pagespeed/store/disk.rb +2 -0
- data/lib/rack/pagespeed/store/memcached.rb +5 -1
- data/lib/rack/pagespeed/store/redis.rb +24 -0
- data/rack-pagespeed.gemspec +10 -10
- data/spec/config_spec.rb +8 -86
- data/spec/fixtures/mock_store.rb +3 -0
- data/spec/pagespeed_spec.rb +5 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/store/redis_spec.rb +22 -0
- metadata +27 -91
- data/lib/rack/pagespeed/store/all.rb +0 -6
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -19,7 +19,6 @@ GEM
|
|
19
19
|
rake (>= 0.8.7)
|
20
20
|
jsmin (1.0.1)
|
21
21
|
json_pure (1.4.6)
|
22
|
-
memcached (1.0.2)
|
23
22
|
mime-types (1.16)
|
24
23
|
nokogiri (1.4.4)
|
25
24
|
rack (1.2.1)
|
@@ -51,7 +50,6 @@ PLATFORMS
|
|
51
50
|
DEPENDENCIES
|
52
51
|
capybara (= 0.4.0)
|
53
52
|
jsmin (= 1.0.1)
|
54
|
-
memcached (= 1.0.2)
|
55
53
|
nokogiri (= 1.4.4)
|
56
54
|
rack (= 1.2.1)
|
57
55
|
rspec (= 2.3.0)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.6
|
data/lib/rack/pagespeed.rb
CHANGED
@@ -34,7 +34,11 @@ module Rack
|
|
34
34
|
if asset = store[asset_id]
|
35
35
|
[
|
36
36
|
200,
|
37
|
-
{
|
37
|
+
{
|
38
|
+
'Content-Type' => (Rack::Mime.mime_type(::File.extname(asset_id))),
|
39
|
+
'Cache-Control' => "public, max-age=#{(60*60*24*365.25*10).to_i}",
|
40
|
+
'Expires' => (Time.now + 60*60*24*365.25*10).httpdate
|
41
|
+
},
|
38
42
|
[asset]
|
39
43
|
]
|
40
44
|
else
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class Rack::PageSpeed::Config
|
2
2
|
class NoSuchFilter < StandardError; end
|
3
3
|
class NoSuchStorageMechanism < StandardError; end
|
4
|
-
load "#{::File.dirname(__FILE__)}/store/
|
4
|
+
load "#{::File.dirname(__FILE__)}/store/disk.rb"
|
5
5
|
|
6
6
|
attr_reader :filters, :public
|
7
7
|
|
@@ -18,12 +18,10 @@ class Rack::PageSpeed::Config
|
|
18
18
|
def store type = nil, *args
|
19
19
|
return @store unless type
|
20
20
|
case type
|
21
|
-
when :disk
|
22
|
-
@store = Rack::PageSpeed::Store::Disk.new *args
|
23
|
-
when :memcached
|
24
|
-
@store = Rack::PageSpeed::Store::Memcached.new *args
|
25
21
|
when {}
|
26
|
-
@store = {} # simple in-memory store
|
22
|
+
@store = {} # simple in-memory store
|
23
|
+
when Symbol
|
24
|
+
@store = load_storage type, *args
|
27
25
|
when Hash
|
28
26
|
store *type.to_a.first
|
29
27
|
else
|
@@ -69,4 +67,13 @@ class Rack::PageSpeed::Config
|
|
69
67
|
end
|
70
68
|
end
|
71
69
|
end
|
70
|
+
|
71
|
+
def load_storage type, *args
|
72
|
+
klass = type.to_s.capitalize
|
73
|
+
unless Rack::PageSpeed::Store.const_defined? klass
|
74
|
+
lib = ::File.join(::File.dirname(__FILE__), 'store', type.to_s)
|
75
|
+
load lib
|
76
|
+
end
|
77
|
+
Rack::PageSpeed::Store.const_get(klass).new *args
|
78
|
+
end
|
72
79
|
end
|
@@ -1,4 +1,8 @@
|
|
1
|
-
|
1
|
+
begin
|
2
|
+
require 'memcached' # wanted to use Dalli, but it just ain't working here right now
|
3
|
+
rescue LoadError
|
4
|
+
raise LoadError, ":memcached store requires the memcached gem to be installed."
|
5
|
+
end
|
2
6
|
|
3
7
|
class Rack::PageSpeed::Store::Memcached
|
4
8
|
def initialize address_port = nil
|
@@ -0,0 +1,24 @@
|
|
1
|
+
begin
|
2
|
+
require 'redis'
|
3
|
+
rescue LoadError
|
4
|
+
raise LoadError, ":redis store requires the redis gem to be installed."
|
5
|
+
end
|
6
|
+
|
7
|
+
class Rack::PageSpeed::Store::Redis
|
8
|
+
def initialize address_port = nil
|
9
|
+
@client = if address_port.nil?
|
10
|
+
Redis.new
|
11
|
+
else
|
12
|
+
address, port = address_port.split(":")
|
13
|
+
Redis.new({ :address => address, :port => port })
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def [] key
|
18
|
+
@client.get key
|
19
|
+
end
|
20
|
+
|
21
|
+
def []= key, value
|
22
|
+
@client.set key, value
|
23
|
+
end
|
24
|
+
end
|
data/rack-pagespeed.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rack-pagespeed}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Julio Cesar Ody"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-04-02}
|
13
13
|
s.description = %q{Web page speed optimizations at the Rack level}
|
14
14
|
s.email = %q{julio@awesomebydesign.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -32,9 +32,9 @@ Gem::Specification.new do |s|
|
|
32
32
|
"lib/rack/pagespeed/filters/inline_images.rb",
|
33
33
|
"lib/rack/pagespeed/filters/inline_javascripts.rb",
|
34
34
|
"lib/rack/pagespeed/filters/minify_javascripts.rb",
|
35
|
-
"lib/rack/pagespeed/store/all.rb",
|
36
35
|
"lib/rack/pagespeed/store/disk.rb",
|
37
36
|
"lib/rack/pagespeed/store/memcached.rb",
|
37
|
+
"lib/rack/pagespeed/store/redis.rb",
|
38
38
|
"rack-pagespeed.gemspec",
|
39
39
|
"spec/config_spec.rb",
|
40
40
|
"spec/filters/combine_css_spec.rb",
|
@@ -53,6 +53,7 @@ Gem::Specification.new do |s|
|
|
53
53
|
"spec/fixtures/jquery-1.4.1.min.js",
|
54
54
|
"spec/fixtures/medialess1.css",
|
55
55
|
"spec/fixtures/medialess2.css",
|
56
|
+
"spec/fixtures/mock_store.rb",
|
56
57
|
"spec/fixtures/mylib.js",
|
57
58
|
"spec/fixtures/noexternalcss.html",
|
58
59
|
"spec/fixtures/noscripts.html",
|
@@ -81,11 +82,12 @@ Gem::Specification.new do |s|
|
|
81
82
|
"spec/pagespeed_spec.rb",
|
82
83
|
"spec/spec_helper.rb",
|
83
84
|
"spec/store/disk_spec.rb",
|
84
|
-
"spec/store/memcached_spec.rb"
|
85
|
+
"spec/store/memcached_spec.rb",
|
86
|
+
"spec/store/redis_spec.rb"
|
85
87
|
]
|
86
88
|
s.homepage = %q{http://github.com/juliocesar/rack-pagespeed}
|
87
89
|
s.require_paths = ["lib"]
|
88
|
-
s.rubygems_version = %q{1.
|
90
|
+
s.rubygems_version = %q{1.7.1}
|
89
91
|
s.summary = %q{Web page speed optimizations at the Rack level}
|
90
92
|
s.test_files = [
|
91
93
|
"spec/config_spec.rb",
|
@@ -96,21 +98,21 @@ Gem::Specification.new do |s|
|
|
96
98
|
"spec/filters/inline_images_spec.rb",
|
97
99
|
"spec/filters/inline_javascript_spec.rb",
|
98
100
|
"spec/filters/minify_javascript_spec.rb",
|
101
|
+
"spec/fixtures/mock_store.rb",
|
99
102
|
"spec/integration/integration_spec.rb",
|
100
103
|
"spec/pagespeed_spec.rb",
|
101
104
|
"spec/spec_helper.rb",
|
102
105
|
"spec/store/disk_spec.rb",
|
103
|
-
"spec/store/memcached_spec.rb"
|
106
|
+
"spec/store/memcached_spec.rb",
|
107
|
+
"spec/store/redis_spec.rb"
|
104
108
|
]
|
105
109
|
|
106
110
|
if s.respond_to? :specification_version then
|
107
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
108
111
|
s.specification_version = 3
|
109
112
|
|
110
113
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
111
114
|
s.add_runtime_dependency(%q<nokogiri>, ["= 1.4.4"])
|
112
115
|
s.add_runtime_dependency(%q<rack>, ["= 1.2.1"])
|
113
|
-
s.add_runtime_dependency(%q<memcached>, ["= 1.0.2"])
|
114
116
|
s.add_runtime_dependency(%q<jsmin>, ["= 1.0.1"])
|
115
117
|
s.add_runtime_dependency(%q<nokogiri>, ["= 1.4.4"])
|
116
118
|
s.add_runtime_dependency(%q<rack>, ["= 1.2.1"])
|
@@ -123,7 +125,6 @@ Gem::Specification.new do |s|
|
|
123
125
|
else
|
124
126
|
s.add_dependency(%q<nokogiri>, ["= 1.4.4"])
|
125
127
|
s.add_dependency(%q<rack>, ["= 1.2.1"])
|
126
|
-
s.add_dependency(%q<memcached>, ["= 1.0.2"])
|
127
128
|
s.add_dependency(%q<jsmin>, ["= 1.0.1"])
|
128
129
|
s.add_dependency(%q<nokogiri>, ["= 1.4.4"])
|
129
130
|
s.add_dependency(%q<rack>, ["= 1.2.1"])
|
@@ -137,7 +138,6 @@ Gem::Specification.new do |s|
|
|
137
138
|
else
|
138
139
|
s.add_dependency(%q<nokogiri>, ["= 1.4.4"])
|
139
140
|
s.add_dependency(%q<rack>, ["= 1.2.1"])
|
140
|
-
s.add_dependency(%q<memcached>, ["= 1.0.2"])
|
141
141
|
s.add_dependency(%q<jsmin>, ["= 1.0.1"])
|
142
142
|
s.add_dependency(%q<nokogiri>, ["= 1.4.4"])
|
143
143
|
s.add_dependency(%q<rack>, ["= 1.2.1"])
|
data/spec/config_spec.rb
CHANGED
@@ -49,7 +49,7 @@ describe 'rack-pagespeed configuration' do
|
|
49
49
|
config.filters.first.should be_a MakesItLookGood
|
50
50
|
end
|
51
51
|
|
52
|
-
it "if it's a hash, it let's you pass options to the filters
|
52
|
+
it "if it's a hash, it let's you pass options to the filters" do
|
53
53
|
config = Rack::PageSpeed::Config.new :filters => {:makes_it_look_good => {:test => 6000}}
|
54
54
|
filter = config.filters.first
|
55
55
|
filter.should be_a MakesItLookGood
|
@@ -97,92 +97,14 @@ describe 'rack-pagespeed configuration' do
|
|
97
97
|
|
98
98
|
context 'setting a storage mechanism' do
|
99
99
|
before { File.stub(:directory?).and_return(true) }
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
specify { subject.instance_variable_get(:@path).should == Fixtures.path }
|
107
|
-
end
|
108
|
-
context ":disk sets to disk storage, in the system's temp dir" do
|
109
|
-
before { @config = Rack::PageSpeed::Config.new :store => :disk }
|
110
|
-
subject { @config.store }
|
111
|
-
specify { should be_a Rack::PageSpeed::Store::Disk }
|
112
|
-
specify { subject.instance_variable_get(:@path).should == Dir.tmpdir }
|
113
|
-
end
|
114
|
-
context 'sets to memcache storage if :memcache => "server address/port"' do
|
115
|
-
before { @config = Rack::PageSpeed::Config.new :store => { :memcached => 'localhost:11211' } }
|
116
|
-
subject { @config.store }
|
117
|
-
specify { should be_a Rack::PageSpeed::Store::Memcached }
|
118
|
-
specify { subject.instance_variable_get(:@client).servers.first.should =~ /localhost:11211/ }
|
119
|
-
end
|
120
|
-
context 'sets to memcache storage, 127.0.0.1:11211 if :memcache"' do
|
121
|
-
before { @config = Rack::PageSpeed::Config.new :store => :memcached }
|
122
|
-
subject { @config.store }
|
123
|
-
specify { should be_a Rack::PageSpeed::Store::Memcached }
|
124
|
-
specify { subject.instance_variable_get(:@client).servers.first.should =~ /127.0.0.1:11211/ }
|
125
|
-
end
|
126
|
-
context "raises NoSuchStorageMechanism for weird stuff" do
|
127
|
-
specify { expect { Rack::PageSpeed::Config.new :store => :poo }.to raise_error(Rack::PageSpeed::Config::NoSuchStorageMechanism) }
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
context 'through a block passed to the initializer' do
|
132
|
-
context 'to a simple Hash, if {} gets passed' do
|
133
|
-
before do
|
134
|
-
@config = Rack::PageSpeed::Config.new do
|
135
|
-
store({})
|
136
|
-
end
|
137
|
-
end
|
138
|
-
subject { @config.store }
|
139
|
-
specify { should == {} }
|
140
|
-
end
|
141
|
-
context 'to disk storage, in a specific path if :disk => "some directory path"' do
|
142
|
-
before do
|
143
|
-
@config = Rack::PageSpeed::Config.new do
|
144
|
-
store :disk => Fixtures.path
|
145
|
-
end
|
146
|
-
end
|
147
|
-
subject { @config.store }
|
148
|
-
specify { should be_a Rack::PageSpeed::Store::Disk }
|
149
|
-
specify { subject.instance_variable_get(:@path).should == Fixtures.path }
|
150
|
-
end
|
151
|
-
context ":disk sets to disk storage, in the system's temp dir" do
|
152
|
-
before do
|
153
|
-
@config = Rack::PageSpeed::Config.new do
|
154
|
-
store :disk
|
155
|
-
end
|
156
|
-
end
|
157
|
-
subject { @config.store }
|
158
|
-
specify { should be_a Rack::PageSpeed::Store::Disk }
|
159
|
-
specify { subject.instance_variable_get(:@path).should == Dir.tmpdir }
|
160
|
-
end
|
161
|
-
context 'sets to memcache storage if :memcache => "server address/port"' do
|
162
|
-
before do
|
163
|
-
@config = Rack::PageSpeed::Config.new do
|
164
|
-
store :memcached => 'localhost:11211'
|
165
|
-
end
|
166
|
-
end
|
167
|
-
subject { @config.store }
|
168
|
-
specify { should be_a Rack::PageSpeed::Store::Memcached }
|
169
|
-
specify { subject.instance_variable_get(:@client).servers.first.should =~ /localhost:11211/ }
|
170
|
-
end
|
171
|
-
context 'sets to memcache storage, localhost:11211 if :memcache"' do
|
172
|
-
before do
|
173
|
-
@config = Rack::PageSpeed::Config.new do
|
174
|
-
store :memcached
|
175
|
-
end
|
176
|
-
end
|
177
|
-
subject { @config.store }
|
178
|
-
specify { should be_a Rack::PageSpeed::Store::Memcached }
|
179
|
-
specify { subject.instance_variable_get(:@client).servers.first.should =~ /127.0.0.1:11211/ }
|
180
|
-
end
|
181
|
-
context "raises NoSuchStorageMechanism for weird stuff" do
|
182
|
-
specify do
|
183
|
-
expect { Rack::PageSpeed::Config.new do store :poo end }.to raise_error(Rack::PageSpeed::Config::NoSuchStorageMechanism)
|
100
|
+
|
101
|
+
it 'loads the appropriate class on request' do
|
102
|
+
::File.stub(:join).and_return(File.dirname(__FILE__) + '/fixtures/mock_store.rb')
|
103
|
+
expect {
|
104
|
+
Rack::PageSpeed::Config.new do
|
105
|
+
store :mock
|
184
106
|
end
|
185
|
-
|
107
|
+
}.to change { Rack::PageSpeed::Store.const_defined?('Mock') }.from(false).to(true)
|
186
108
|
end
|
187
109
|
end
|
188
110
|
end
|
data/spec/pagespeed_spec.rb
CHANGED
@@ -86,6 +86,11 @@ describe 'rack-pagespeed' do
|
|
86
86
|
it "responds with HTTP 200" do
|
87
87
|
@status.should == 200
|
88
88
|
end
|
89
|
+
|
90
|
+
it "instructs clients to cache asset for 10 years" do
|
91
|
+
@headers['Cache-Control'].should == "public, max-age=315576000"
|
92
|
+
Time.parse(@headers['Expires']).to_i.should be_within(10).of(Time.now.to_i + 315576000)
|
93
|
+
end
|
89
94
|
end
|
90
95
|
end
|
91
96
|
|
data/spec/spec_helper.rb
CHANGED
@@ -2,6 +2,9 @@ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
|
2
2
|
require 'rspec'
|
3
3
|
require 'fileutils'
|
4
4
|
require 'rack/pagespeed'
|
5
|
+
require 'rack/pagespeed/store/disk'
|
6
|
+
require 'rack/pagespeed/store/memcached'
|
7
|
+
require 'rack/pagespeed/store/redis'
|
5
8
|
require 'fileutils'
|
6
9
|
require 'tmpdir'
|
7
10
|
require 'ostruct'
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe "redis storage" do
|
4
|
+
before :all do
|
5
|
+
@store = Rack::PageSpeed::Store::Redis.new
|
6
|
+
@client = @store.instance_variable_get(:@client)
|
7
|
+
end
|
8
|
+
|
9
|
+
context 'writing' do
|
10
|
+
it "writes with a Hash-like syntax" do
|
11
|
+
@client.should_receive(:set).with('omg', 'value')
|
12
|
+
@store['omg'] = "value"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'reading' do
|
17
|
+
it "reads with a Hash-like syntax" do
|
18
|
+
@client.set 'hola', 'Hola mundo'
|
19
|
+
@store['hola'].should == "Hola mundo"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-pagespeed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 1
|
7
|
-
- 0
|
8
|
-
- 5
|
9
|
-
version: 1.0.5
|
4
|
+
prerelease:
|
5
|
+
version: 1.0.6
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Julio Cesar Ody
|
@@ -14,8 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
18
|
-
default_executable:
|
13
|
+
date: 2011-04-02 00:00:00 Z
|
19
14
|
dependencies:
|
20
15
|
- !ruby/object:Gem::Dependency
|
21
16
|
name: nokogiri
|
@@ -25,10 +20,6 @@ dependencies:
|
|
25
20
|
requirements:
|
26
21
|
- - "="
|
27
22
|
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 1
|
30
|
-
- 4
|
31
|
-
- 4
|
32
23
|
version: 1.4.4
|
33
24
|
type: :runtime
|
34
25
|
version_requirements: *id001
|
@@ -40,162 +31,108 @@ dependencies:
|
|
40
31
|
requirements:
|
41
32
|
- - "="
|
42
33
|
- !ruby/object:Gem::Version
|
43
|
-
segments:
|
44
|
-
- 1
|
45
|
-
- 2
|
46
|
-
- 1
|
47
34
|
version: 1.2.1
|
48
35
|
type: :runtime
|
49
36
|
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: memcached
|
52
|
-
prerelease: false
|
53
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
-
none: false
|
55
|
-
requirements:
|
56
|
-
- - "="
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
segments:
|
59
|
-
- 1
|
60
|
-
- 0
|
61
|
-
- 2
|
62
|
-
version: 1.0.2
|
63
|
-
type: :runtime
|
64
|
-
version_requirements: *id003
|
65
37
|
- !ruby/object:Gem::Dependency
|
66
38
|
name: jsmin
|
67
39
|
prerelease: false
|
68
|
-
requirement: &
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
69
41
|
none: false
|
70
42
|
requirements:
|
71
43
|
- - "="
|
72
44
|
- !ruby/object:Gem::Version
|
73
|
-
segments:
|
74
|
-
- 1
|
75
|
-
- 0
|
76
|
-
- 1
|
77
45
|
version: 1.0.1
|
78
46
|
type: :runtime
|
79
|
-
version_requirements: *
|
47
|
+
version_requirements: *id003
|
80
48
|
- !ruby/object:Gem::Dependency
|
81
49
|
name: nokogiri
|
82
50
|
prerelease: false
|
83
|
-
requirement: &
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
84
52
|
none: false
|
85
53
|
requirements:
|
86
54
|
- - "="
|
87
55
|
- !ruby/object:Gem::Version
|
88
|
-
segments:
|
89
|
-
- 1
|
90
|
-
- 4
|
91
|
-
- 4
|
92
56
|
version: 1.4.4
|
93
57
|
type: :runtime
|
94
|
-
version_requirements: *
|
58
|
+
version_requirements: *id004
|
95
59
|
- !ruby/object:Gem::Dependency
|
96
60
|
name: rack
|
97
61
|
prerelease: false
|
98
|
-
requirement: &
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
99
63
|
none: false
|
100
64
|
requirements:
|
101
65
|
- - "="
|
102
66
|
- !ruby/object:Gem::Version
|
103
|
-
segments:
|
104
|
-
- 1
|
105
|
-
- 2
|
106
|
-
- 1
|
107
67
|
version: 1.2.1
|
108
68
|
type: :runtime
|
109
|
-
version_requirements: *
|
69
|
+
version_requirements: *id005
|
110
70
|
- !ruby/object:Gem::Dependency
|
111
71
|
name: memcached
|
112
72
|
prerelease: false
|
113
|
-
requirement: &
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
114
74
|
none: false
|
115
75
|
requirements:
|
116
76
|
- - "="
|
117
77
|
- !ruby/object:Gem::Version
|
118
|
-
segments:
|
119
|
-
- 1
|
120
|
-
- 0
|
121
|
-
- 2
|
122
78
|
version: 1.0.2
|
123
79
|
type: :runtime
|
124
|
-
version_requirements: *
|
80
|
+
version_requirements: *id006
|
125
81
|
- !ruby/object:Gem::Dependency
|
126
82
|
name: mime-types
|
127
83
|
prerelease: false
|
128
|
-
requirement: &
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
129
85
|
none: false
|
130
86
|
requirements:
|
131
87
|
- - "="
|
132
88
|
- !ruby/object:Gem::Version
|
133
|
-
segments:
|
134
|
-
- 1
|
135
|
-
- 16
|
136
89
|
version: "1.16"
|
137
90
|
type: :runtime
|
138
|
-
version_requirements: *
|
91
|
+
version_requirements: *id007
|
139
92
|
- !ruby/object:Gem::Dependency
|
140
93
|
name: jsmin
|
141
94
|
prerelease: false
|
142
|
-
requirement: &
|
95
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
143
96
|
none: false
|
144
97
|
requirements:
|
145
98
|
- - "="
|
146
99
|
- !ruby/object:Gem::Version
|
147
|
-
segments:
|
148
|
-
- 1
|
149
|
-
- 0
|
150
|
-
- 1
|
151
100
|
version: 1.0.1
|
152
101
|
type: :runtime
|
153
|
-
version_requirements: *
|
102
|
+
version_requirements: *id008
|
154
103
|
- !ruby/object:Gem::Dependency
|
155
104
|
name: rspec
|
156
105
|
prerelease: false
|
157
|
-
requirement: &
|
106
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
158
107
|
none: false
|
159
108
|
requirements:
|
160
109
|
- - "="
|
161
110
|
- !ruby/object:Gem::Version
|
162
|
-
segments:
|
163
|
-
- 2
|
164
|
-
- 1
|
165
|
-
- 0
|
166
111
|
version: 2.1.0
|
167
112
|
type: :development
|
168
|
-
version_requirements: *
|
113
|
+
version_requirements: *id009
|
169
114
|
- !ruby/object:Gem::Dependency
|
170
115
|
name: steak
|
171
116
|
prerelease: false
|
172
|
-
requirement: &
|
117
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
173
118
|
none: false
|
174
119
|
requirements:
|
175
120
|
- - "="
|
176
121
|
- !ruby/object:Gem::Version
|
177
|
-
segments:
|
178
|
-
- 1
|
179
|
-
- 0
|
180
|
-
- 0
|
181
122
|
version: 1.0.0
|
182
123
|
type: :development
|
183
|
-
version_requirements: *
|
124
|
+
version_requirements: *id010
|
184
125
|
- !ruby/object:Gem::Dependency
|
185
126
|
name: capybara
|
186
127
|
prerelease: false
|
187
|
-
requirement: &
|
128
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
188
129
|
none: false
|
189
130
|
requirements:
|
190
131
|
- - "="
|
191
132
|
- !ruby/object:Gem::Version
|
192
|
-
segments:
|
193
|
-
- 0
|
194
|
-
- 4
|
195
|
-
- 0
|
196
133
|
version: 0.4.0
|
197
134
|
type: :development
|
198
|
-
version_requirements: *
|
135
|
+
version_requirements: *id011
|
199
136
|
description: Web page speed optimizations at the Rack level
|
200
137
|
email: julio@awesomebydesign.com
|
201
138
|
executables: []
|
@@ -221,9 +158,9 @@ files:
|
|
221
158
|
- lib/rack/pagespeed/filters/inline_images.rb
|
222
159
|
- lib/rack/pagespeed/filters/inline_javascripts.rb
|
223
160
|
- lib/rack/pagespeed/filters/minify_javascripts.rb
|
224
|
-
- lib/rack/pagespeed/store/all.rb
|
225
161
|
- lib/rack/pagespeed/store/disk.rb
|
226
162
|
- lib/rack/pagespeed/store/memcached.rb
|
163
|
+
- lib/rack/pagespeed/store/redis.rb
|
227
164
|
- rack-pagespeed.gemspec
|
228
165
|
- spec/config_spec.rb
|
229
166
|
- spec/filters/combine_css_spec.rb
|
@@ -242,6 +179,7 @@ files:
|
|
242
179
|
- spec/fixtures/jquery-1.4.1.min.js
|
243
180
|
- spec/fixtures/medialess1.css
|
244
181
|
- spec/fixtures/medialess2.css
|
182
|
+
- spec/fixtures/mock_store.rb
|
245
183
|
- spec/fixtures/mylib.js
|
246
184
|
- spec/fixtures/noexternalcss.html
|
247
185
|
- spec/fixtures/noscripts.html
|
@@ -271,7 +209,7 @@ files:
|
|
271
209
|
- spec/spec_helper.rb
|
272
210
|
- spec/store/disk_spec.rb
|
273
211
|
- spec/store/memcached_spec.rb
|
274
|
-
|
212
|
+
- spec/store/redis_spec.rb
|
275
213
|
homepage: http://github.com/juliocesar/rack-pagespeed
|
276
214
|
licenses: []
|
277
215
|
|
@@ -285,21 +223,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
285
223
|
requirements:
|
286
224
|
- - ">="
|
287
225
|
- !ruby/object:Gem::Version
|
288
|
-
segments:
|
289
|
-
- 0
|
290
226
|
version: "0"
|
291
227
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
292
228
|
none: false
|
293
229
|
requirements:
|
294
230
|
- - ">="
|
295
231
|
- !ruby/object:Gem::Version
|
296
|
-
segments:
|
297
|
-
- 0
|
298
232
|
version: "0"
|
299
233
|
requirements: []
|
300
234
|
|
301
235
|
rubyforge_project:
|
302
|
-
rubygems_version: 1.
|
236
|
+
rubygems_version: 1.7.1
|
303
237
|
signing_key:
|
304
238
|
specification_version: 3
|
305
239
|
summary: Web page speed optimizations at the Rack level
|
@@ -312,8 +246,10 @@ test_files:
|
|
312
246
|
- spec/filters/inline_images_spec.rb
|
313
247
|
- spec/filters/inline_javascript_spec.rb
|
314
248
|
- spec/filters/minify_javascript_spec.rb
|
249
|
+
- spec/fixtures/mock_store.rb
|
315
250
|
- spec/integration/integration_spec.rb
|
316
251
|
- spec/pagespeed_spec.rb
|
317
252
|
- spec/spec_helper.rb
|
318
253
|
- spec/store/disk_spec.rb
|
319
254
|
- spec/store/memcached_spec.rb
|
255
|
+
- spec/store/redis_spec.rb
|