middleman-s3_sync 4.0.3 → 4.6.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 +5 -5
- data/.gitignore +1 -0
- data/.s3_sync.sample +20 -0
- data/README.md +216 -40
- data/lib/middleman/redirect.rb +21 -0
- data/lib/middleman/s3_sync/cloudfront.rb +192 -0
- data/lib/middleman/s3_sync/options.rb +6 -0
- data/lib/middleman/s3_sync/resource.rb +129 -24
- data/lib/middleman/s3_sync/version.rb +1 -1
- data/lib/middleman/s3_sync.rb +87 -38
- data/lib/middleman-s3_sync/commands.rb +32 -1
- data/lib/middleman-s3_sync/extension.rb +19 -3
- data/lib/middleman-s3_sync.rb +1 -0
- data/middleman-s3_sync.gemspec +9 -5
- data/spec/cloudfront_spec.rb +391 -0
- data/spec/resource_spec.rb +78 -13
- data/spec/s3_sync_integration_spec.rb +132 -0
- data/spec/spec_helper.rb +41 -1
- metadata +77 -19
data/spec/spec_helper.rb
CHANGED
@@ -8,6 +8,9 @@
|
|
8
8
|
require 'middleman-s3_sync'
|
9
9
|
require 'timerizer'
|
10
10
|
require 'rspec/its'
|
11
|
+
require 'rspec/support'
|
12
|
+
require 'digest/md5'
|
13
|
+
require 'cgi'
|
11
14
|
|
12
15
|
RSpec.configure do |config|
|
13
16
|
config.run_all_when_everything_filtered = true
|
@@ -20,6 +23,43 @@ RSpec.configure do |config|
|
|
20
23
|
config.order = 'random'
|
21
24
|
|
22
25
|
config.before :all do
|
23
|
-
|
26
|
+
Aws.config.update(
|
27
|
+
region: 'us-east-1',
|
28
|
+
credentials: Aws::Credentials.new('access_key_id', 'secret_access_key'),
|
29
|
+
stub_responses: true
|
30
|
+
)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Helper method to create a mock S3 object
|
34
|
+
def mock_s3_object(key, metadata = {})
|
35
|
+
# Ensure key has no leading slash to match test expectations
|
36
|
+
key = key.sub(/^\//, '')
|
37
|
+
|
38
|
+
obj = double(
|
39
|
+
key: key,
|
40
|
+
metadata: metadata,
|
41
|
+
etag: "\"#{Digest::MD5.hexdigest('test content')}\"",
|
42
|
+
content_encoding: nil,
|
43
|
+
cache_control: nil,
|
44
|
+
website_redirect_location: nil
|
45
|
+
)
|
46
|
+
|
47
|
+
# Allow head method to return self for testing
|
48
|
+
allow(obj).to receive(:head).and_return(obj)
|
49
|
+
allow(obj).to receive(:put).and_return(true)
|
50
|
+
allow(obj).to receive(:delete).and_return(true)
|
51
|
+
|
52
|
+
obj
|
53
|
+
end
|
54
|
+
|
55
|
+
# Helper method to create a mock HeadObjectOutput
|
56
|
+
def mock_head_object(metadata = {})
|
57
|
+
double(
|
58
|
+
metadata: metadata,
|
59
|
+
etag: "\"#{Digest::MD5.hexdigest('test content')}\"",
|
60
|
+
content_encoding: nil,
|
61
|
+
cache_control: nil,
|
62
|
+
website_redirect_location: nil
|
63
|
+
)
|
24
64
|
end
|
25
65
|
end
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-s3_sync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0
|
4
|
+
version: 4.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Frederic Jean
|
8
8
|
- Will Koehler
|
9
|
-
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2025-05-26 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: middleman-core
|
@@ -17,14 +16,14 @@ dependencies:
|
|
17
16
|
requirements:
|
18
17
|
- - ">="
|
19
18
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
19
|
+
version: '0'
|
21
20
|
type: :runtime
|
22
21
|
prerelease: false
|
23
22
|
version_requirements: !ruby/object:Gem::Requirement
|
24
23
|
requirements:
|
25
24
|
- - ">="
|
26
25
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
26
|
+
version: '0'
|
28
27
|
- !ruby/object:Gem::Dependency
|
29
28
|
name: middleman-cli
|
30
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -54,19 +53,33 @@ dependencies:
|
|
54
53
|
- !ruby/object:Gem::Version
|
55
54
|
version: '0'
|
56
55
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
56
|
+
name: aws-sdk-s3
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: aws-sdk-cloudfront
|
58
71
|
requirement: !ruby/object:Gem::Requirement
|
59
72
|
requirements:
|
60
73
|
- - ">="
|
61
74
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0
|
75
|
+
version: '0'
|
63
76
|
type: :runtime
|
64
77
|
prerelease: false
|
65
78
|
version_requirements: !ruby/object:Gem::Requirement
|
66
79
|
requirements:
|
67
80
|
- - ">="
|
68
81
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0
|
82
|
+
version: '0'
|
70
83
|
- !ruby/object:Gem::Dependency
|
71
84
|
name: map
|
72
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,6 +136,48 @@ dependencies:
|
|
123
136
|
- - "~>"
|
124
137
|
- !ruby/object:Gem::Version
|
125
138
|
version: 1.5.0
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: mime-types
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '3.1'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '3.1'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: base64
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: nokogiri
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 1.18.4
|
174
|
+
type: :runtime
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 1.18.4
|
126
181
|
- !ruby/object:Gem::Dependency
|
127
182
|
name: rake
|
128
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -171,16 +226,16 @@ dependencies:
|
|
171
226
|
requirements:
|
172
227
|
- - ">="
|
173
228
|
- !ruby/object:Gem::Version
|
174
|
-
version:
|
229
|
+
version: '0'
|
175
230
|
type: :development
|
176
231
|
prerelease: false
|
177
232
|
version_requirements: !ruby/object:Gem::Requirement
|
178
233
|
requirements:
|
179
234
|
- - ">="
|
180
235
|
- !ruby/object:Gem::Version
|
181
|
-
version:
|
236
|
+
version: '0'
|
182
237
|
- !ruby/object:Gem::Dependency
|
183
|
-
name: rspec-
|
238
|
+
name: rspec-support
|
184
239
|
requirement: !ruby/object:Gem::Requirement
|
185
240
|
requirements:
|
186
241
|
- - ">="
|
@@ -194,7 +249,7 @@ dependencies:
|
|
194
249
|
- !ruby/object:Gem::Version
|
195
250
|
version: '0'
|
196
251
|
- !ruby/object:Gem::Dependency
|
197
|
-
name: rspec-
|
252
|
+
name: rspec-its
|
198
253
|
requirement: !ruby/object:Gem::Requirement
|
199
254
|
requirements:
|
200
255
|
- - ">="
|
@@ -208,7 +263,7 @@ dependencies:
|
|
208
263
|
- !ruby/object:Gem::Version
|
209
264
|
version: '0'
|
210
265
|
- !ruby/object:Gem::Dependency
|
211
|
-
name:
|
266
|
+
name: rspec-mocks
|
212
267
|
requirement: !ruby/object:Gem::Requirement
|
213
268
|
requirements:
|
214
269
|
- - ">="
|
@@ -222,7 +277,7 @@ dependencies:
|
|
222
277
|
- !ruby/object:Gem::Version
|
223
278
|
version: '0'
|
224
279
|
- !ruby/object:Gem::Dependency
|
225
|
-
name:
|
280
|
+
name: timerizer
|
226
281
|
requirement: !ruby/object:Gem::Requirement
|
227
282
|
requirements:
|
228
283
|
- - ">="
|
@@ -236,7 +291,7 @@ dependencies:
|
|
236
291
|
- !ruby/object:Gem::Version
|
237
292
|
version: '0'
|
238
293
|
- !ruby/object:Gem::Dependency
|
239
|
-
name:
|
294
|
+
name: webrick
|
240
295
|
requirement: !ruby/object:Gem::Requirement
|
241
296
|
requirements:
|
242
297
|
- - ">="
|
@@ -268,8 +323,10 @@ files:
|
|
268
323
|
- lib/middleman-s3_sync.rb
|
269
324
|
- lib/middleman-s3_sync/commands.rb
|
270
325
|
- lib/middleman-s3_sync/extension.rb
|
326
|
+
- lib/middleman/redirect.rb
|
271
327
|
- lib/middleman/s3_sync.rb
|
272
328
|
- lib/middleman/s3_sync/caching_policy.rb
|
329
|
+
- lib/middleman/s3_sync/cloudfront.rb
|
273
330
|
- lib/middleman/s3_sync/options.rb
|
274
331
|
- lib/middleman/s3_sync/resource.rb
|
275
332
|
- lib/middleman/s3_sync/status.rb
|
@@ -277,13 +334,14 @@ files:
|
|
277
334
|
- lib/middleman_extension.rb
|
278
335
|
- middleman-s3_sync.gemspec
|
279
336
|
- spec/caching_policy_spec.rb
|
337
|
+
- spec/cloudfront_spec.rb
|
280
338
|
- spec/resource_spec.rb
|
339
|
+
- spec/s3_sync_integration_spec.rb
|
281
340
|
- spec/spec_helper.rb
|
282
341
|
homepage: http://github.com/fredjean/middleman-s3_sync
|
283
342
|
licenses:
|
284
343
|
- MIT
|
285
344
|
metadata: {}
|
286
|
-
post_install_message:
|
287
345
|
rdoc_options: []
|
288
346
|
require_paths:
|
289
347
|
- lib
|
@@ -298,12 +356,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
298
356
|
- !ruby/object:Gem::Version
|
299
357
|
version: '0'
|
300
358
|
requirements: []
|
301
|
-
|
302
|
-
rubygems_version: 2.5.1
|
303
|
-
signing_key:
|
359
|
+
rubygems_version: 3.6.2
|
304
360
|
specification_version: 4
|
305
361
|
summary: Tries really, really hard not to push files to S3.
|
306
362
|
test_files:
|
307
363
|
- spec/caching_policy_spec.rb
|
364
|
+
- spec/cloudfront_spec.rb
|
308
365
|
- spec/resource_spec.rb
|
366
|
+
- spec/s3_sync_integration_spec.rb
|
309
367
|
- spec/spec_helper.rb
|