jekyll-s3 3.1.2 → 3.2.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 +7 -0
- data/Gemfile.lock +1 -1
- data/changelog.md +4 -0
- data/jekyll-s3.gemspec +1 -1
- data/lib/jekyll-s3.rb +1 -1
- data/lib/jekyll-s3/keyboard.rb +6 -3
- data/lib/jekyll-s3/parallelism.rb +20 -0
- data/lib/jekyll-s3/uploader.rb +1 -13
- data/spec/lib/parallelism_spec.rb +43 -0
- metadata +20 -52
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5ad1b011484b20902e39cb8f5b8efd4048cee3da
|
4
|
+
data.tar.gz: 80f7697bcbc82520378a00eef6aca4b57c54d4bf
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 709e15a09766c29914b57625a6b90e9ae8e8c52ee4b8ec2c225fe6ee286ccc508399ee43b466d3b40c12bbbeea7ef1fee072148c5f92b7ac17647812974aef16
|
7
|
+
data.tar.gz: 73146c0d5b31920c9920374f8f7404d54f55cb0611c9aa549eaaffdd30df5cc8bb35178aaf6993e8dbdb5e9737bc75dac2648e3ed35f29a17c22c9370b96473e
|
data/Gemfile.lock
CHANGED
data/changelog.md
CHANGED
data/jekyll-s3.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 = "jekyll-s3"
|
6
|
-
s.version = "3.
|
6
|
+
s.version = "3.2.0"
|
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"]
|
data/lib/jekyll-s3.rb
CHANGED
@@ -12,7 +12,7 @@ module Jekyll
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
%w{errors upload uploader cli config_loader retry keyboard diff_helper endpoint}.each do |file|
|
15
|
+
%w{errors upload uploader cli config_loader retry keyboard diff_helper endpoint parallelism}.each do |file|
|
16
16
|
require File.dirname(__FILE__) + "/jekyll-s3/#{file}"
|
17
17
|
end
|
18
18
|
|
data/lib/jekyll-s3/keyboard.rb
CHANGED
@@ -4,7 +4,7 @@ module Jekyll
|
|
4
4
|
def self.if_user_confirms_delete(to_delete, standard_input=STDIN)
|
5
5
|
delete_all = false
|
6
6
|
keep_all = false
|
7
|
-
to_delete.
|
7
|
+
confirmed_deletes = to_delete.map do |f|
|
8
8
|
delete = false
|
9
9
|
keep = false
|
10
10
|
until delete || delete_all || keep || keep_all
|
@@ -17,9 +17,12 @@ module Jekyll
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
if (delete_all || delete) && !(keep_all || keep)
|
20
|
-
|
20
|
+
f
|
21
21
|
end
|
22
|
-
end
|
22
|
+
end.select { |f| f }
|
23
|
+
Parallelism.each_in_parallel_or_sequentially(confirmed_deletes) { |f|
|
24
|
+
yield f
|
25
|
+
}
|
23
26
|
end
|
24
27
|
end
|
25
28
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Jekyll
|
2
|
+
module S3
|
3
|
+
class Parallelism
|
4
|
+
def self.each_in_parallel_or_sequentially(items, &operation)
|
5
|
+
if ENV['disable_parallel_processing']
|
6
|
+
items.each do |item|
|
7
|
+
operation.call item
|
8
|
+
end
|
9
|
+
else
|
10
|
+
threads = items.map do |item|
|
11
|
+
Thread.new(item) { |item|
|
12
|
+
operation.call item
|
13
|
+
}
|
14
|
+
end
|
15
|
+
threads.each { |thread| thread.join }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/jekyll-s3/uploader.rb
CHANGED
@@ -60,21 +60,9 @@ module Jekyll
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def self.upload_in_parallel_or_sequentially(files_to_upload, s3, config, site_dir)
|
63
|
-
|
63
|
+
Parallelism.each_in_parallel_or_sequentially(files_to_upload) { |f|
|
64
64
|
upload_file(f, s3, config, site_dir)
|
65
65
|
}
|
66
|
-
if ENV['disable_parallel_processing']
|
67
|
-
files_to_upload.each do |f|
|
68
|
-
do_upload_file.call f
|
69
|
-
end
|
70
|
-
else
|
71
|
-
threads = files_to_upload.map do |f|
|
72
|
-
Thread.new(f) { |f|
|
73
|
-
do_upload_file.call f
|
74
|
-
}
|
75
|
-
end
|
76
|
-
threads.each { |thread| thread.join }
|
77
|
-
end
|
78
66
|
end
|
79
67
|
|
80
68
|
def self.upload_file(file, s3, config, site_dir)
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Jekyll::S3::Parallelism do
|
4
|
+
context 'user has disabled parallelism' do
|
5
|
+
before(:all) {
|
6
|
+
@original_disable_state = ENV['disable_parallel_processing']
|
7
|
+
ENV['disable_parallel_processing'] = 'true'
|
8
|
+
}
|
9
|
+
|
10
|
+
after(:all) {
|
11
|
+
ENV['disable_parallel_processing'] = @original_disable_state
|
12
|
+
}
|
13
|
+
|
14
|
+
it 'runs things sequentially' do
|
15
|
+
ints = (0..100).to_a
|
16
|
+
after_processing = []
|
17
|
+
Jekyll::S3::Parallelism.each_in_parallel_or_sequentially(ints) { |int|
|
18
|
+
after_processing << int
|
19
|
+
}
|
20
|
+
ints.should eq(after_processing)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context 'user has not disabled parallelism' do
|
25
|
+
before(:all) {
|
26
|
+
@original_disable_state = ENV['disable_parallel_processing']
|
27
|
+
ENV.delete 'disable_parallel_processing'
|
28
|
+
}
|
29
|
+
|
30
|
+
after(:all) {
|
31
|
+
ENV['disable_parallel_processing'] = @original_disable_state if @original_disable_state
|
32
|
+
}
|
33
|
+
|
34
|
+
it 'runs things in parallel' do
|
35
|
+
ints = (0..100).to_a
|
36
|
+
after_processing = []
|
37
|
+
Jekyll::S3::Parallelism.each_in_parallel_or_sequentially(ints) { |int|
|
38
|
+
after_processing << int
|
39
|
+
}
|
40
|
+
ints.should_not eq(after_processing) # Parallel processing introduces non-determinism
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-s3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
5
|
-
prerelease:
|
4
|
+
version: 3.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Philippe Creux
|
@@ -15,7 +14,6 @@ dependencies:
|
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: aws-sdk
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ~>
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - ~>
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -31,7 +28,6 @@ dependencies:
|
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: filey-diff
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
32
|
- - ~>
|
37
33
|
- !ruby/object:Gem::Version
|
@@ -39,7 +35,6 @@ dependencies:
|
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
39
|
- - ~>
|
45
40
|
- !ruby/object:Gem::Version
|
@@ -47,7 +42,6 @@ dependencies:
|
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: simple-cloudfront-invalidator
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
46
|
- - ~>
|
53
47
|
- !ruby/object:Gem::Version
|
@@ -55,7 +49,6 @@ dependencies:
|
|
55
49
|
type: :runtime
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
53
|
- - ~>
|
61
54
|
- !ruby/object:Gem::Version
|
@@ -63,7 +56,6 @@ dependencies:
|
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: erubis
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
60
|
- - ~>
|
69
61
|
- !ruby/object:Gem::Version
|
@@ -71,7 +63,6 @@ dependencies:
|
|
71
63
|
type: :runtime
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
67
|
- - ~>
|
77
68
|
- !ruby/object:Gem::Version
|
@@ -79,7 +70,6 @@ dependencies:
|
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: mime-types
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
74
|
- - '='
|
85
75
|
- !ruby/object:Gem::Version
|
@@ -87,7 +77,6 @@ dependencies:
|
|
87
77
|
type: :runtime
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
81
|
- - '='
|
93
82
|
- !ruby/object:Gem::Version
|
@@ -95,7 +84,6 @@ dependencies:
|
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: configure-s3-website
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
88
|
- - ~>
|
101
89
|
- !ruby/object:Gem::Version
|
@@ -103,7 +91,6 @@ dependencies:
|
|
103
91
|
type: :runtime
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
95
|
- - ~>
|
109
96
|
- !ruby/object:Gem::Version
|
@@ -111,55 +98,48 @@ dependencies:
|
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: rspec
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
|
-
- -
|
102
|
+
- - '>='
|
117
103
|
- !ruby/object:Gem::Version
|
118
104
|
version: '0'
|
119
105
|
type: :development
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
|
-
- -
|
109
|
+
- - '>='
|
125
110
|
- !ruby/object:Gem::Version
|
126
111
|
version: '0'
|
127
112
|
- !ruby/object:Gem::Dependency
|
128
113
|
name: rspec-expectations
|
129
114
|
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
115
|
requirements:
|
132
|
-
- -
|
116
|
+
- - '>='
|
133
117
|
- !ruby/object:Gem::Version
|
134
118
|
version: '0'
|
135
119
|
type: :development
|
136
120
|
prerelease: false
|
137
121
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
122
|
requirements:
|
140
|
-
- -
|
123
|
+
- - '>='
|
141
124
|
- !ruby/object:Gem::Version
|
142
125
|
version: '0'
|
143
126
|
- !ruby/object:Gem::Dependency
|
144
127
|
name: cucumber
|
145
128
|
requirement: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
129
|
requirements:
|
148
|
-
- -
|
130
|
+
- - '>='
|
149
131
|
- !ruby/object:Gem::Version
|
150
132
|
version: '0'
|
151
133
|
type: :development
|
152
134
|
prerelease: false
|
153
135
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
136
|
requirements:
|
156
|
-
- -
|
137
|
+
- - '>='
|
157
138
|
- !ruby/object:Gem::Version
|
158
139
|
version: '0'
|
159
140
|
- !ruby/object:Gem::Dependency
|
160
141
|
name: aruba
|
161
142
|
requirement: !ruby/object:Gem::Requirement
|
162
|
-
none: false
|
163
143
|
requirements:
|
164
144
|
- - ~>
|
165
145
|
- !ruby/object:Gem::Version
|
@@ -167,7 +147,6 @@ dependencies:
|
|
167
147
|
type: :development
|
168
148
|
prerelease: false
|
169
149
|
version_requirements: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
150
|
requirements:
|
172
151
|
- - ~>
|
173
152
|
- !ruby/object:Gem::Version
|
@@ -175,23 +154,20 @@ dependencies:
|
|
175
154
|
- !ruby/object:Gem::Dependency
|
176
155
|
name: rake
|
177
156
|
requirement: !ruby/object:Gem::Requirement
|
178
|
-
none: false
|
179
157
|
requirements:
|
180
|
-
- -
|
158
|
+
- - '>='
|
181
159
|
- !ruby/object:Gem::Version
|
182
160
|
version: '0'
|
183
161
|
type: :development
|
184
162
|
prerelease: false
|
185
163
|
version_requirements: !ruby/object:Gem::Requirement
|
186
|
-
none: false
|
187
164
|
requirements:
|
188
|
-
- -
|
165
|
+
- - '>='
|
189
166
|
- !ruby/object:Gem::Version
|
190
167
|
version: '0'
|
191
168
|
- !ruby/object:Gem::Dependency
|
192
169
|
name: vcr
|
193
170
|
requirement: !ruby/object:Gem::Requirement
|
194
|
-
none: false
|
195
171
|
requirements:
|
196
172
|
- - ~>
|
197
173
|
- !ruby/object:Gem::Version
|
@@ -199,7 +175,6 @@ dependencies:
|
|
199
175
|
type: :development
|
200
176
|
prerelease: false
|
201
177
|
version_requirements: !ruby/object:Gem::Requirement
|
202
|
-
none: false
|
203
178
|
requirements:
|
204
179
|
- - ~>
|
205
180
|
- !ruby/object:Gem::Version
|
@@ -207,7 +182,6 @@ dependencies:
|
|
207
182
|
- !ruby/object:Gem::Dependency
|
208
183
|
name: webmock
|
209
184
|
requirement: !ruby/object:Gem::Requirement
|
210
|
-
none: false
|
211
185
|
requirements:
|
212
186
|
- - ~>
|
213
187
|
- !ruby/object:Gem::Version
|
@@ -215,16 +189,14 @@ dependencies:
|
|
215
189
|
type: :development
|
216
190
|
prerelease: false
|
217
191
|
version_requirements: !ruby/object:Gem::Requirement
|
218
|
-
none: false
|
219
192
|
requirements:
|
220
193
|
- - ~>
|
221
194
|
- !ruby/object:Gem::Version
|
222
195
|
version: 1.8.0
|
223
|
-
description:
|
224
|
-
|
196
|
+
description: |-
|
197
|
+
This Gem allows you to push your Jekyll blog to AWS S3.
|
225
198
|
In addition, you can use this Gem to invalidate the related Cloudfront
|
226
|
-
|
227
|
-
distribution, making it easy to deliver your blog via the CDN.'
|
199
|
+
distribution, making it easy to deliver your blog via the CDN.
|
228
200
|
email:
|
229
201
|
- pcreux@gmail.com
|
230
202
|
- lauri.lehmijoki@iki.fi
|
@@ -311,12 +283,14 @@ files:
|
|
311
283
|
- lib/jekyll-s3/endpoint.rb
|
312
284
|
- lib/jekyll-s3/errors.rb
|
313
285
|
- lib/jekyll-s3/keyboard.rb
|
286
|
+
- lib/jekyll-s3/parallelism.rb
|
314
287
|
- lib/jekyll-s3/retry.rb
|
315
288
|
- lib/jekyll-s3/upload.rb
|
316
289
|
- lib/jekyll-s3/uploader.rb
|
317
290
|
- spec/lib/config_loader_spec.rb
|
318
291
|
- spec/lib/endpoint_spec.rb
|
319
292
|
- spec/lib/keyboard_spec.rb
|
293
|
+
- spec/lib/parallelism_spec.rb
|
320
294
|
- spec/lib/retry_spec.rb
|
321
295
|
- spec/lib/upload_spec.rb
|
322
296
|
- spec/lib/uploader_spec.rb
|
@@ -331,33 +305,26 @@ files:
|
|
331
305
|
- spec/spec_helper.rb
|
332
306
|
homepage: https://github.com/laurilehmijoki/jekyll-s3
|
333
307
|
licenses: []
|
308
|
+
metadata: {}
|
334
309
|
post_install_message:
|
335
310
|
rdoc_options: []
|
336
311
|
require_paths:
|
337
312
|
- lib
|
338
313
|
required_ruby_version: !ruby/object:Gem::Requirement
|
339
|
-
none: false
|
340
314
|
requirements:
|
341
|
-
- -
|
315
|
+
- - '>='
|
342
316
|
- !ruby/object:Gem::Version
|
343
317
|
version: '0'
|
344
|
-
segments:
|
345
|
-
- 0
|
346
|
-
hash: -3787363599528242274
|
347
318
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
348
|
-
none: false
|
349
319
|
requirements:
|
350
|
-
- -
|
320
|
+
- - '>='
|
351
321
|
- !ruby/object:Gem::Version
|
352
322
|
version: '0'
|
353
|
-
segments:
|
354
|
-
- 0
|
355
|
-
hash: -3787363599528242274
|
356
323
|
requirements: []
|
357
324
|
rubyforge_project:
|
358
|
-
rubygems_version:
|
325
|
+
rubygems_version: 2.0.3
|
359
326
|
signing_key:
|
360
|
-
specification_version:
|
327
|
+
specification_version: 4
|
361
328
|
summary: Push your Jekyll blog to S3
|
362
329
|
test_files:
|
363
330
|
- features/cassettes/cucumber_tags/create-redirect.yml
|
@@ -423,6 +390,7 @@ test_files:
|
|
423
390
|
- spec/lib/config_loader_spec.rb
|
424
391
|
- spec/lib/endpoint_spec.rb
|
425
392
|
- spec/lib/keyboard_spec.rb
|
393
|
+
- spec/lib/parallelism_spec.rb
|
426
394
|
- spec/lib/retry_spec.rb
|
427
395
|
- spec/lib/upload_spec.rb
|
428
396
|
- spec/lib/uploader_spec.rb
|