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 +6 -0
- data/jekyll-s3.gemspec +1 -2
- data/lib/cloudfront/invalidator.rb +3 -2
- data/lib/jekyll-s3/cli.rb +4 -4
- data/lib/jekyll-s3/uploader.rb +3 -3
- metadata +167 -170
- data/lib/jekyll-s3/version.rb +0 -5
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 =
|
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 =
|
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
|
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)
|
data/lib/jekyll-s3/uploader.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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
|
-
|
41
|
-
|
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
|
-
|
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
|
-
|
64
|
-
|
65
|
-
|
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
|
-
|
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
|
-
|
79
|
-
|
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:
|
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
|
-
|
87
|
-
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
hash: 3
|
106
|
+
segments:
|
107
|
+
- 0
|
108
|
+
version: "0"
|
88
109
|
prerelease: false
|
89
|
-
|
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:
|
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
|
-
|
103
|
-
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
hash: 3
|
120
|
+
segments:
|
121
|
+
- 0
|
122
|
+
version: "0"
|
104
123
|
prerelease: false
|
105
|
-
|
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:
|
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
|
-
|
119
|
-
|
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
|
-
|
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:
|
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
|
-
|
135
|
-
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
hash: 3
|
150
|
+
segments:
|
151
|
+
- 0
|
152
|
+
version: "0"
|
136
153
|
prerelease: false
|
137
|
-
|
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:
|
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
|
-
|
151
|
-
|
160
|
+
requirements:
|
161
|
+
- - ">="
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
hash: 3
|
164
|
+
segments:
|
165
|
+
- 0
|
166
|
+
version: "0"
|
152
167
|
prerelease: false
|
153
|
-
|
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:
|
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
|
-
|
167
|
-
|
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
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
266
|
-
segments:
|
258
|
+
requirements:
|
259
|
+
- - ">="
|
260
|
+
- !ruby/object:Gem::Version
|
261
|
+
hash: 3
|
262
|
+
segments:
|
267
263
|
- 0
|
268
|
-
|
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
|
-
|
275
|
-
segments:
|
267
|
+
requirements:
|
268
|
+
- - ">="
|
269
|
+
- !ruby/object:Gem::Version
|
270
|
+
hash: 3
|
271
|
+
segments:
|
276
272
|
- 0
|
277
|
-
|
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
|