jekyll-s3 2.5.0 → 2.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -99,7 +99,7 @@ values](http://docs.amazonwebservices.com/general/latest/gr/rande.html#s3_region
99
99
  ### Ignoring files you want to keep on AWS
100
100
 
101
101
  Sometimes there are files or directories you want to keep on S3, but not on
102
- your local machine. You may define a regular expression to ignore files like so:
102
+ your local machine. You may define a regular expression to ignore files like so:
103
103
 
104
104
  ```yaml
105
105
  ignore_on_server: that_folder_of_stuff_i_dont_keep_locally
@@ -186,8 +186,8 @@ When sending pull requests, please accompany them with tests. Favor BDD style
186
186
  in test descriptions. Use VCR-backed integration tests where possible. For
187
187
  reference, you can look at the existing Jekyll-s3 tests.
188
188
 
189
- If you are not sure how to test your pull request, you can ask the main
190
- developer (currently Lauri Lehmijoki) to supplement the request with tests.
189
+ If you are not sure how to test your pull request, you can ask the [gem owners
190
+ ](http://rubygems.org/gems/jekyll-s3) to supplement the request with tests.
191
191
  However, by including proper tests, you increase the chances of your pull
192
192
  request being incorporated into future releases.
193
193
 
@@ -209,3 +209,4 @@ Contributors (in alphabetical order)
209
209
  * Michael Bleigh
210
210
  * Shigeaki Matsumura
211
211
  * stanislas
212
+ * Zee Spencer
@@ -2,6 +2,11 @@
2
2
 
3
3
  This project uses [Semantic Versioning](http://semver.org).
4
4
 
5
+ ## 2.5.1
6
+
7
+ * Respect the most specific `max_age` setting (fixes issue
8
+ [43](https://github.com/laurilehmijoki/jekyll-s3/issues/43))
9
+
5
10
  ## 2.5.0
6
11
 
7
12
  * Use regex to ignore files on server
@@ -0,0 +1,3 @@
1
+ s3_id: key
2
+ s3_secret: pass
3
+ s3_bucket: jekyll-s3-test.net
@@ -0,0 +1,5 @@
1
+ <html>
2
+ <head>
3
+ <title>hello!</title>
4
+ </head>
5
+ </html>
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "jekyll-s3"
6
- s.version = "2.5.0"
6
+ s.version = "2.5.1"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Philippe Creux", "Lauri Lehmijoki"]
9
9
  s.email = ["pcreux@gmail.com", "lauri.lehmijoki@iki.fi"]
@@ -73,7 +73,8 @@ module Jekyll
73
73
 
74
74
  def max_age
75
75
  if config['max_age'].is_a?(Hash)
76
- config['max_age'].each_pair do |glob, age|
76
+ max_age_entries_most_specific_first.each do |glob_and_age|
77
+ (glob, age) = glob_and_age
77
78
  return age if File.fnmatch(glob, path)
78
79
  end
79
80
  else
@@ -83,6 +84,18 @@ module Jekyll
83
84
  return 0
84
85
  end
85
86
 
87
+ # The most specific max-age glob == the longest glob
88
+ def max_age_entries_most_specific_first
89
+ sorted_by_glob_length = config['max_age'].
90
+ each_pair.
91
+ to_a.
92
+ sort_by do |glob_and_age|
93
+ (glob, age) = glob_and_age
94
+ sort_key = glob.length
95
+ end.
96
+ reverse
97
+ end
98
+
86
99
  def mime_type
87
100
  MIME::Types.type_for(path).first
88
101
  end
@@ -3,11 +3,15 @@ require 'pp'
3
3
 
4
4
  describe Jekyll::S3::Endpoint do
5
5
 
6
- it 'uses the "us-east-1" as the default location' do
6
+ it 'uses the DEFAULT_LOCATION_CONSTRAINT constant to set the default location constraint' do
7
7
  endpoint = Jekyll::S3::Endpoint.new
8
8
  endpoint.location_constraint.should eq(Jekyll::S3::Endpoint::DEFAULT_LOCATION_CONSTRAINT)
9
9
  end
10
10
 
11
+ it 'uses the "us-east-1" as the default location' do
12
+ Jekyll::S3::Endpoint::DEFAULT_LOCATION_CONSTRAINT.should eq('us-east-1')
13
+ end
14
+
11
15
  it 'takes a valid location constraint as a constructor parameter' do
12
16
  endpoint = Jekyll::S3::Endpoint.new('EU')
13
17
  endpoint.location_constraint.should eq('EU')
@@ -19,3 +23,5 @@ describe Jekyll::S3::Endpoint do
19
23
  }.to raise_error
20
24
  end
21
25
  end
26
+
27
+
@@ -106,7 +106,14 @@ describe Jekyll::S3::Upload do
106
106
  }
107
107
  }
108
108
 
109
- subject{ Jekyll::S3::Upload.new("index.html", mock(), config, 'features/support/test_site_dirs/my.blog.com/_site') }
109
+ let(:subject) {
110
+ Jekyll::S3::Upload.new(
111
+ "index.html",
112
+ mock(),
113
+ config,
114
+ 'features/support/test_site_dirs/my.blog.com/_site'
115
+ )
116
+ }
110
117
 
111
118
  describe '#cache_control?' do
112
119
  it 'should be false if max_age is missing' do
@@ -138,6 +145,38 @@ describe Jekyll::S3::Upload do
138
145
  config['max_age'] = {'*.js' => 500}
139
146
  subject.send(:max_age).should == 0
140
147
  end
148
+
149
+ context 'overriding the more general setting with the more specific' do
150
+ let(:config){
151
+ {
152
+ 's3_reduced_redundancy' => false,
153
+ 'max_age' => {
154
+ '**' => 150,
155
+ 'assets/**' => 86400
156
+ }
157
+ }
158
+ }
159
+
160
+ it 'respects the most specific max-age selector' do
161
+ subject = Jekyll::S3::Upload.new(
162
+ 'assets/picture.gif',
163
+ mock(),
164
+ config,
165
+ 'features/support/test_site_dirs/index-and-assets.blog.fi/_site'
166
+ )
167
+ subject.send(:max_age).should == 86400
168
+ end
169
+
170
+ it 'respects the most specific max-age selector' do
171
+ subject = Jekyll::S3::Upload.new(
172
+ 'index.html',
173
+ mock(),
174
+ config,
175
+ 'features/support/test_site_dirs/index-and-assets.blog.fi/_site'
176
+ )
177
+ subject.send(:max_age).should == 150
178
+ end
179
+ end
141
180
  end
142
181
  end
143
182
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.0
4
+ version: 2.5.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-04-18 00:00:00.000000000 Z
13
+ date: 2013-05-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: aws-sdk
@@ -262,6 +262,10 @@ files:
262
262
  - features/support/test_site_dirs/cdn-powered.with-one-change.blog.fi/_jekyll_s3.yml
263
263
  - features/support/test_site_dirs/cdn-powered.with-one-change.blog.fi/_site/css/styles.css
264
264
  - features/support/test_site_dirs/cdn-powered.with-one-change.blog.fi/_site/index.html
265
+ - features/support/test_site_dirs/index-and-assets.blog.fi/_jekyll_s3.yml
266
+ - features/support/test_site_dirs/index-and-assets.blog.fi/_site/assets/picture.gif
267
+ - features/support/test_site_dirs/index-and-assets.blog.fi/_site/css/styles.css
268
+ - features/support/test_site_dirs/index-and-assets.blog.fi/_site/index.html
265
269
  - features/support/test_site_dirs/my.blog.com/_jekyll_s3.yml
266
270
  - features/support/test_site_dirs/my.blog.com/_site/css/styles.css
267
271
  - features/support/test_site_dirs/my.blog.com/_site/index.html
@@ -333,7 +337,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
333
337
  version: '0'
334
338
  segments:
335
339
  - 0
336
- hash: 392463145716040126
340
+ hash: -2239747319602957789
337
341
  required_rubygems_version: !ruby/object:Gem::Requirement
338
342
  none: false
339
343
  requirements:
@@ -342,7 +346,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
342
346
  version: '0'
343
347
  segments:
344
348
  - 0
345
- hash: 392463145716040126
349
+ hash: -2239747319602957789
346
350
  requirements: []
347
351
  rubyforge_project:
348
352
  rubygems_version: 1.8.25
@@ -372,6 +376,10 @@ test_files:
372
376
  - features/support/test_site_dirs/cdn-powered.with-one-change.blog.fi/_jekyll_s3.yml
373
377
  - features/support/test_site_dirs/cdn-powered.with-one-change.blog.fi/_site/css/styles.css
374
378
  - features/support/test_site_dirs/cdn-powered.with-one-change.blog.fi/_site/index.html
379
+ - features/support/test_site_dirs/index-and-assets.blog.fi/_jekyll_s3.yml
380
+ - features/support/test_site_dirs/index-and-assets.blog.fi/_site/assets/picture.gif
381
+ - features/support/test_site_dirs/index-and-assets.blog.fi/_site/css/styles.css
382
+ - features/support/test_site_dirs/index-and-assets.blog.fi/_site/index.html
375
383
  - features/support/test_site_dirs/my.blog.com/_jekyll_s3.yml
376
384
  - features/support/test_site_dirs/my.blog.com/_site/css/styles.css
377
385
  - features/support/test_site_dirs/my.blog.com/_site/index.html