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 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