s3_website 1.6.13 → 1.7.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.
- 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
|