s3_website 1.6.13 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -0
- data/changelog.md +4 -0
- data/lib/s3_website/upload.rb +15 -10
- data/s3_website.gemspec +2 -1
- data/spec/lib/upload_spec.rb +21 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e6c59e118fa7b84134238ddee3b47dc3edc237c
|
4
|
+
data.tar.gz: 10b1b6a851278f874986b24ccdee15caa1aed821
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a265484452a3a261a7a2607f05d4183ecc73c4ce04dde5c8fd3fbc73b84f0cb24c5416aecd44c9c12b1f0725ec2fcc38ef8b59660edb9fcd9db187157e2b5f17
|
7
|
+
data.tar.gz: 9c75e3fddd4525adf01760e7182fa8f776fd28a84e2d6e39465201ed3badbae7ff46be317413b716007085264b77e5c81aac9a8a3bd9d6cc471dc1b2bb86f485
|
data/README.md
CHANGED
@@ -140,6 +140,13 @@ gzip:
|
|
140
140
|
Remember that the extensions here are referring to the *compiled* extensions,
|
141
141
|
not the pre-processed extensions.
|
142
142
|
|
143
|
+
#### Gzip zopfli
|
144
|
+
|
145
|
+
By adding the line `gzip_zopfli: true` into the config file, you can benefit
|
146
|
+
from the zopfli algorithm, which is 100% compatible with the traditional gzip
|
147
|
+
algorithm. A zopfli compression takes longer but results in about 5% smaller
|
148
|
+
files.
|
149
|
+
|
143
150
|
### Specifying a MIME type for files without extensions
|
144
151
|
|
145
152
|
`s3_website` will look up the MIME type of each file it uploads, and infer the Content-Type from it automatically. By default, files without an extension will have a blank Content-Type.
|
@@ -436,6 +443,7 @@ Contributors (in alphabetical order)
|
|
436
443
|
* Chris Moos
|
437
444
|
* Christopher Petersen
|
438
445
|
* David Michael Barr
|
446
|
+
* David Raffensperger
|
439
447
|
* Greg Karékinian
|
440
448
|
* John Allison
|
441
449
|
* Jordan White
|
data/changelog.md
CHANGED
data/lib/s3_website/upload.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'tempfile'
|
2
2
|
require 'zlib'
|
3
|
+
require 'zopfli'
|
3
4
|
|
4
5
|
module S3Website
|
5
6
|
class Upload
|
@@ -51,16 +52,20 @@ module S3Website
|
|
51
52
|
tempfile = Tempfile.new(File.basename(path))
|
52
53
|
tempfile.binmode
|
53
54
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
55
|
+
if config['gzip_zopfli']
|
56
|
+
gz_data = Zopfli.deflate file.read, format: :gzip
|
57
|
+
tempfile.write(gz_data)
|
58
|
+
tempfile.flush
|
59
|
+
else
|
60
|
+
gz = Zlib::GzipWriter.new(tempfile, Zlib::BEST_COMPRESSION, Zlib::DEFAULT_STRATEGY)
|
61
|
+
gz.mtime = File.mtime(full_path)
|
62
|
+
gz.orig_name = File.basename(path)
|
63
|
+
gz.write(file.read)
|
64
|
+
|
65
|
+
gz.flush
|
66
|
+
tempfile.flush
|
67
|
+
gz.close
|
68
|
+
end
|
64
69
|
tempfile.open
|
65
70
|
|
66
71
|
tempfile
|
data/s3_website.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "s3_website"
|
6
|
-
s.version = "1.
|
6
|
+
s.version = "1.7.0"
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
8
|
s.authors = ["Lauri Lehmijoki"]
|
9
9
|
s.email = ["lauri.lehmijoki@iki.fi"]
|
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_dependency 'mime-types', '~> 1'
|
25
25
|
s.add_dependency 'thor', '= 0.18.1'
|
26
26
|
s.add_dependency 'configure-s3-website', '= 1.5.2'
|
27
|
+
s.add_dependency 'zopfli', '~> 0.0.3'
|
27
28
|
|
28
29
|
s.add_development_dependency 'rspec', '2.14.0'
|
29
30
|
s.add_development_dependency 'rspec-expectations', '2.14.4'
|
data/spec/lib/upload_spec.rb
CHANGED
@@ -114,7 +114,7 @@ describe S3Website::Upload do
|
|
114
114
|
}
|
115
115
|
end
|
116
116
|
end
|
117
|
-
end
|
117
|
+
end
|
118
118
|
|
119
119
|
describe 'gzip compression' do
|
120
120
|
let(:config){
|
@@ -146,8 +146,28 @@ describe S3Website::Upload do
|
|
146
146
|
subject.stub(:path).and_return('index.bork')
|
147
147
|
subject.should be_gzip
|
148
148
|
end
|
149
|
+
end
|
150
|
+
|
151
|
+
describe '#gzipped_file' do
|
152
|
+
it 'should return a gzipped version of the file' do
|
153
|
+
gz = Zlib::GzipReader.new(subject.send(:gzipped_file))
|
154
|
+
gz.read.should == File.read('features/support/test_site_dirs/my.blog.com/_site/index.html')
|
155
|
+
end
|
149
156
|
end
|
157
|
+
end
|
158
|
+
|
159
|
+
describe 'gzip zopfli' do
|
160
|
+
let(:config){
|
161
|
+
{
|
162
|
+
's3_reduced_redundancy' => false,
|
163
|
+
'gzip' => true,
|
164
|
+
'gzip_zopfli' => true
|
165
|
+
}
|
166
|
+
}
|
167
|
+
|
168
|
+
subject{ S3Website::Upload.new("index.html", mock(), config, 'features/support/test_site_dirs/my.blog.com/_site') }
|
150
169
|
|
170
|
+
# Zopfli should be compatible with the gzip format
|
151
171
|
describe '#gzipped_file' do
|
152
172
|
it 'should return a gzipped version of the file' do
|
153
173
|
gz = Zlib::GzipReader.new(subject.send(:gzipped_file))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3_website
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lauri Lehmijoki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - '='
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 1.5.2
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: zopfli
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.0.3
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ~>
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.0.3
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rspec
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|