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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 602d8ae25b6312db999a5506cec95d599a7e174a
4
- data.tar.gz: 8c730aee62d51d15548f9fdc0b6202f887189321
3
+ metadata.gz: 5e6c59e118fa7b84134238ddee3b47dc3edc237c
4
+ data.tar.gz: 10b1b6a851278f874986b24ccdee15caa1aed821
5
5
  SHA512:
6
- metadata.gz: 724205beb553e6f17373bf89c820faa62ac853f5f60838ef85d9ffe8b280f5c7e0bb1f2f642438037309ef49345604878ce1482619c1b627beb2914998fbebc2
7
- data.tar.gz: 22be4f555bd4df4bc074f6add890013bfda33b0f4d5ea31df3a57ea61883184bfc6a0559408222fa1c515fdd35e151c73cfea99776ca3c3daee6d1b0fbc92979
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
@@ -2,6 +2,10 @@
2
2
 
3
3
  This project uses [Semantic Versioning](http://semver.org).
4
4
 
5
+ ## 1.7.0
6
+
7
+ * Add zopfli compression support
8
+
5
9
  ## 1.6.13
6
10
 
7
11
  * Depend on any 1-series version of the aws-sdk gem
@@ -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
- gz = Zlib::GzipWriter.new(tempfile, Zlib::BEST_COMPRESSION, Zlib::DEFAULT_STRATEGY)
55
-
56
- gz.mtime = File.mtime(full_path)
57
- gz.orig_name = File.basename(path)
58
- gz.write(file.read)
59
-
60
- gz.flush
61
- tempfile.flush
62
-
63
- gz.close
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.13"
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'
@@ -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.6.13
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-13 00:00:00.000000000 Z
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