jekyll-s3 0.0.7 → 1.0.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.
data/README.md CHANGED
@@ -68,6 +68,11 @@ Enable the headless mode by adding the `--headless` or `-h` argument after
68
68
 
69
69
  ## Changelog
70
70
 
71
+ ### 1.0.0
72
+
73
+ * CloudFront invalidation on changed files only
74
+ * Start using [Semantic versioning](http://semver.org/)
75
+
71
76
  ### 0.0.7
72
77
 
73
78
  * Headless mode
@@ -107,4 +112,5 @@ Copyright (c) 2011 VersaPay, Philippe Creux.
107
112
  Contributors (in alphabetical order)
108
113
  * Cory Kaufman-Schofield
109
114
  * Chris Kelly
115
+ * Chris Moos
110
116
  * Lauri Lehmijoki
data/jekyll-s3.gemspec CHANGED
@@ -1,10 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
- require "jekyll-s3/version"
4
3
 
5
4
  Gem::Specification.new do |s|
6
5
  s.name = "jekyll-s3"
7
- s.version = Jekyll::S3::VERSION
6
+ s.version = "1.0.0"
8
7
  s.platform = Gem::Platform::RUBY
9
8
  s.authors = ["Philippe Creux", "Lauri Lehmijoki"]
10
9
  s.email = ["pcreux@gmail.com", "lauri.lehmijoki@iki.fi"]
@@ -1,7 +1,7 @@
1
1
  module Jekyll
2
2
  module Cloudfront
3
3
  class Invalidator
4
- def self.invalidate(config)
4
+ def self.invalidate(config, changed_files)
5
5
  aws_key = config['s3_id']
6
6
  aws_secret = config['s3_secret']
7
7
  s3_bucket_name = config['s3_bucket']
@@ -9,7 +9,8 @@ module Jekyll
9
9
  s3 = AWS::S3.new(
10
10
  :access_key_id => aws_key,
11
11
  :secret_access_key => aws_secret)
12
- s3_object_keys = s3.buckets[s3_bucket_name].objects.map { |f| f.key }
12
+ s3_object_keys = changed_files
13
+ s3_object_keys << ""
13
14
  report = SimpleCloudfrontInvalidator::CloudfrontClient.new(
14
15
  aws_key, aws_secret, cloudfront_distribution_id).invalidate(
15
16
  s3_object_keys)
data/lib/jekyll-s3/cli.rb CHANGED
@@ -10,9 +10,9 @@ module Jekyll
10
10
  def run(site_dir, in_headless_mode = false)
11
11
  CLI.check_configuration site_dir
12
12
  config = Jekyll::S3::ConfigLoader.load_configuration site_dir
13
- new_files_count, changed_files_count, deleted_files_count =
13
+ new_files_count, changed_files_count, deleted_files_count, changed_files =
14
14
  Uploader.run(site_dir, config, in_headless_mode)
15
- CLI.invalidate_cf_dist_if_configured config
15
+ CLI.invalidate_cf_dist_if_configured(config, changed_files)
16
16
  [new_files_count, changed_files_count, deleted_files_count]
17
17
  rescue JekyllS3Error => e
18
18
  puts e.message
@@ -21,10 +21,10 @@ module Jekyll
21
21
 
22
22
  private
23
23
 
24
- def self.invalidate_cf_dist_if_configured(config)
24
+ def self.invalidate_cf_dist_if_configured(config, changed_files)
25
25
  cloudfront_configured = config['cloudfront_distribution_id'] &&
26
26
  (not config['cloudfront_distribution_id'].empty?)
27
- Jekyll::Cloudfront::Invalidator.invalidate(config) if cloudfront_configured
27
+ Jekyll::Cloudfront::Invalidator.invalidate(config, changed_files) if cloudfront_configured
28
28
  end
29
29
 
30
30
  def self.check_configuration(site_dir)
@@ -12,13 +12,13 @@ module Jekyll
12
12
 
13
13
  create_bucket_if_needed(s3, s3_bucket_name)
14
14
 
15
- new_files_count, changed_files_count = upload_files(s3, s3_bucket_name, site_dir)
15
+ new_files_count, changed_files_count, changed_files = upload_files(s3, s3_bucket_name, site_dir)
16
16
 
17
17
  deleted_files_count = remove_superfluous_files(
18
18
  s3, s3_bucket_name, site_dir, in_headless_mode)
19
19
 
20
20
  puts "Done! Go visit: http://#{s3_bucket_name}.s3.amazonaws.com/index.html"
21
- [new_files_count, changed_files_count, deleted_files_count]
21
+ [new_files_count, changed_files_count, deleted_files_count, changed_files]
22
22
  end
23
23
 
24
24
  private
@@ -48,7 +48,7 @@ module Jekyll
48
48
  upload_file(f, s3, s3_bucket_name, site_dir)
49
49
  end
50
50
  end
51
- [new_files.length, changed_files.length]
51
+ [new_files.length, changed_files.length, changed_files]
52
52
  end
53
53
 
54
54
  def self.upload_file(file, s3, s3_bucket_name, site_dir)
metadata CHANGED
@@ -1,206 +1,201 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: jekyll-s3
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.7
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
5
  prerelease:
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Philippe Creux
9
14
  - Lauri Lehmijoki
10
15
  autorequire:
11
16
  bindir: bin
12
17
  cert_chain: []
13
- date: 2012-11-12 00:00:00.000000000 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: aws-sdk
17
- requirement: !ruby/object:Gem::Requirement
18
+
19
+ date: 2012-12-04 00:00:00 Z
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
18
23
  none: false
19
- requirements:
24
+ requirements:
20
25
  - - ~>
21
- - !ruby/object:Gem::Version
26
+ - !ruby/object:Gem::Version
27
+ hash: 15
28
+ segments:
29
+ - 1
30
+ - 5
31
+ - 6
22
32
  version: 1.5.6
23
- type: :runtime
24
33
  prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ~>
29
- - !ruby/object:Gem::Version
30
- version: 1.5.6
31
- - !ruby/object:Gem::Dependency
32
- name: filey-diff
33
- requirement: !ruby/object:Gem::Requirement
34
- none: false
35
- requirements:
36
- - - ~>
37
- - !ruby/object:Gem::Version
38
- version: 0.0.2
39
34
  type: :runtime
40
- prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
35
+ name: aws-sdk
36
+ requirement: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ version_requirements: &id002 !ruby/object:Gem::Requirement
42
39
  none: false
43
- requirements:
40
+ requirements:
44
41
  - - ~>
45
- - !ruby/object:Gem::Version
42
+ - !ruby/object:Gem::Version
43
+ hash: 27
44
+ segments:
45
+ - 0
46
+ - 0
47
+ - 2
46
48
  version: 0.0.2
47
- - !ruby/object:Gem::Dependency
48
- name: simple-cloudfront-invalidator
49
- requirement: !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - ~>
53
- - !ruby/object:Gem::Version
54
- version: 0.0.1
55
- type: :runtime
56
49
  prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
50
+ type: :runtime
51
+ name: filey-diff
52
+ requirement: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ version_requirements: &id003 !ruby/object:Gem::Requirement
58
55
  none: false
59
- requirements:
56
+ requirements:
60
57
  - - ~>
61
- - !ruby/object:Gem::Version
58
+ - !ruby/object:Gem::Version
59
+ hash: 29
60
+ segments:
61
+ - 0
62
+ - 0
63
+ - 1
62
64
  version: 0.0.1
63
- - !ruby/object:Gem::Dependency
64
- name: erubis
65
- requirement: !ruby/object:Gem::Requirement
65
+ prerelease: false
66
+ type: :runtime
67
+ name: simple-cloudfront-invalidator
68
+ requirement: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ version_requirements: &id004 !ruby/object:Gem::Requirement
66
71
  none: false
67
- requirements:
72
+ requirements:
68
73
  - - ~>
69
- - !ruby/object:Gem::Version
74
+ - !ruby/object:Gem::Version
75
+ hash: 19
76
+ segments:
77
+ - 2
78
+ - 7
79
+ - 0
70
80
  version: 2.7.0
71
- type: :runtime
72
81
  prerelease: false
73
- version_requirements: !ruby/object:Gem::Requirement
82
+ type: :runtime
83
+ name: erubis
84
+ requirement: *id004
85
+ - !ruby/object:Gem::Dependency
86
+ version_requirements: &id005 !ruby/object:Gem::Requirement
74
87
  none: false
75
- requirements:
76
- - - ~>
77
- - !ruby/object:Gem::Version
78
- version: 2.7.0
79
- - !ruby/object:Gem::Dependency
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ hash: 3
92
+ segments:
93
+ - 0
94
+ version: "0"
95
+ prerelease: false
96
+ type: :development
80
97
  name: rspec
81
- requirement: !ruby/object:Gem::Requirement
98
+ requirement: *id005
99
+ - !ruby/object:Gem::Dependency
100
+ version_requirements: &id006 !ruby/object:Gem::Requirement
82
101
  none: false
83
- requirements:
84
- - - ! '>='
85
- - !ruby/object:Gem::Version
86
- version: '0'
87
- type: :development
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ hash: 3
106
+ segments:
107
+ - 0
108
+ version: "0"
88
109
  prerelease: false
89
- version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
- requirements:
92
- - - ! '>='
93
- - !ruby/object:Gem::Version
94
- version: '0'
95
- - !ruby/object:Gem::Dependency
110
+ type: :development
96
111
  name: rspec-expectations
97
- requirement: !ruby/object:Gem::Requirement
112
+ requirement: *id006
113
+ - !ruby/object:Gem::Dependency
114
+ version_requirements: &id007 !ruby/object:Gem::Requirement
98
115
  none: false
99
- requirements:
100
- - - ! '>='
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
- type: :development
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ hash: 3
120
+ segments:
121
+ - 0
122
+ version: "0"
104
123
  prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
124
+ type: :development
112
125
  name: cucumber
113
- requirement: !ruby/object:Gem::Requirement
126
+ requirement: *id007
127
+ - !ruby/object:Gem::Dependency
128
+ version_requirements: &id008 !ruby/object:Gem::Requirement
114
129
  none: false
115
- requirements:
116
- - - ! '>='
117
- - !ruby/object:Gem::Version
118
- version: '0'
119
- type: :development
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ hash: 1
134
+ segments:
135
+ - 0
136
+ - 4
137
+ - 7
138
+ version: 0.4.7
120
139
  prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
- requirements:
124
- - - ! '>='
125
- - !ruby/object:Gem::Version
126
- version: '0'
127
- - !ruby/object:Gem::Dependency
140
+ type: :development
128
141
  name: aruba
129
- requirement: !ruby/object:Gem::Requirement
142
+ requirement: *id008
143
+ - !ruby/object:Gem::Dependency
144
+ version_requirements: &id009 !ruby/object:Gem::Requirement
130
145
  none: false
131
- requirements:
132
- - - ! '>='
133
- - !ruby/object:Gem::Version
134
- version: 0.4.7
135
- type: :development
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ hash: 3
150
+ segments:
151
+ - 0
152
+ version: "0"
136
153
  prerelease: false
137
- version_requirements: !ruby/object:Gem::Requirement
138
- none: false
139
- requirements:
140
- - - ! '>='
141
- - !ruby/object:Gem::Version
142
- version: 0.4.7
143
- - !ruby/object:Gem::Dependency
154
+ type: :development
144
155
  name: rake
145
- requirement: !ruby/object:Gem::Requirement
156
+ requirement: *id009
157
+ - !ruby/object:Gem::Dependency
158
+ version_requirements: &id010 !ruby/object:Gem::Requirement
146
159
  none: false
147
- requirements:
148
- - - ! '>='
149
- - !ruby/object:Gem::Version
150
- version: '0'
151
- type: :development
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ hash: 3
164
+ segments:
165
+ - 0
166
+ version: "0"
152
167
  prerelease: false
153
- version_requirements: !ruby/object:Gem::Requirement
154
- none: false
155
- requirements:
156
- - - ! '>='
157
- - !ruby/object:Gem::Version
158
- version: '0'
159
- - !ruby/object:Gem::Dependency
168
+ type: :development
160
169
  name: vcr
161
- requirement: !ruby/object:Gem::Requirement
170
+ requirement: *id010
171
+ - !ruby/object:Gem::Dependency
172
+ version_requirements: &id011 !ruby/object:Gem::Requirement
162
173
  none: false
163
- requirements:
164
- - - ! '>='
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- type: :development
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ hash: 3
178
+ segments:
179
+ - 0
180
+ version: "0"
168
181
  prerelease: false
169
- version_requirements: !ruby/object:Gem::Requirement
170
- none: false
171
- requirements:
172
- - - ! '>='
173
- - !ruby/object:Gem::Version
174
- version: '0'
175
- - !ruby/object:Gem::Dependency
176
- name: webmock
177
- requirement: !ruby/object:Gem::Requirement
178
- none: false
179
- requirements:
180
- - - ! '>='
181
- - !ruby/object:Gem::Version
182
- version: '0'
183
182
  type: :development
184
- prerelease: false
185
- version_requirements: !ruby/object:Gem::Requirement
186
- none: false
187
- requirements:
188
- - - ! '>='
189
- - !ruby/object:Gem::Version
190
- version: '0'
191
- description: ! 'This Gem allows you to push your Jekyll blog to AWS S3.
192
-
183
+ name: webmock
184
+ requirement: *id011
185
+ description: |-
186
+ This Gem allows you to push your Jekyll blog to AWS S3.
193
187
  In addition, you can use this Gem to invalidate the related Cloudfront
194
-
195
- distribution, making it easy to deliver your blog via the CDN.'
196
- email:
188
+ distribution, making it easy to deliver your blog via the CDN.
189
+ email:
197
190
  - pcreux@gmail.com
198
191
  - lauri.lehmijoki@iki.fi
199
- executables:
192
+ executables:
200
193
  - jekyll-s3
201
194
  extensions: []
195
+
202
196
  extra_rdoc_files: []
203
- files:
197
+
198
+ files:
204
199
  - .gitignore
205
200
  - .travis.yml
206
201
  - Gemfile
@@ -247,41 +242,43 @@ files:
247
242
  - lib/jekyll-s3/keyboard.rb
248
243
  - lib/jekyll-s3/retry.rb
249
244
  - lib/jekyll-s3/uploader.rb
250
- - lib/jekyll-s3/version.rb
251
245
  - spec/lib/keyboard_spec.rb
252
246
  - spec/lib/retry_spec.rb
253
247
  - spec/spec_helper.rb
254
248
  homepage: https://github.com/laurilehmijoki/jekyll-s3
255
249
  licenses: []
250
+
256
251
  post_install_message:
257
252
  rdoc_options: []
258
- require_paths:
253
+
254
+ require_paths:
259
255
  - lib
260
- required_ruby_version: !ruby/object:Gem::Requirement
256
+ required_ruby_version: !ruby/object:Gem::Requirement
261
257
  none: false
262
- requirements:
263
- - - ! '>='
264
- - !ruby/object:Gem::Version
265
- version: '0'
266
- segments:
258
+ requirements:
259
+ - - ">="
260
+ - !ruby/object:Gem::Version
261
+ hash: 3
262
+ segments:
267
263
  - 0
268
- hash: 2702422542857987753
269
- required_rubygems_version: !ruby/object:Gem::Requirement
264
+ version: "0"
265
+ required_rubygems_version: !ruby/object:Gem::Requirement
270
266
  none: false
271
- requirements:
272
- - - ! '>='
273
- - !ruby/object:Gem::Version
274
- version: '0'
275
- segments:
267
+ requirements:
268
+ - - ">="
269
+ - !ruby/object:Gem::Version
270
+ hash: 3
271
+ segments:
276
272
  - 0
277
- hash: 2702422542857987753
273
+ version: "0"
278
274
  requirements: []
275
+
279
276
  rubyforge_project:
280
277
  rubygems_version: 1.8.24
281
278
  signing_key:
282
279
  specification_version: 3
283
280
  summary: Push your Jekyll blog to S3
284
- test_files:
281
+ test_files:
285
282
  - features/cassettes/cucumber_tags/new-and-changed-files.yml
286
283
  - features/cassettes/cucumber_tags/new-files.yml
287
284
  - features/cassettes/cucumber_tags/no-new-or-changed-files.yml
@@ -1,5 +0,0 @@
1
- module Jekyll
2
- module S3
3
- VERSION = "0.0.7"
4
- end
5
- end