asset_sync 2.8.1 → 2.8.2
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 +4 -4
- data/.travis.yml +2 -1
- data/CHANGELOG.md +10 -1
- data/lib/asset_sync/storage.rb +9 -3
- data/lib/asset_sync/version.rb +1 -1
- data/spec/unit/storage_spec.rb +55 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5897684db35a90b21d8b5e24a262a3d5e38685e0e38df3cbc0f1ba745bff118c
|
4
|
+
data.tar.gz: 5f82d80aa6ca05cd26cc7f8548c8bd1306ee2686a959565879ce2a731e80b0a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73ac0a4ab2a64cd398783cb3b2b3dd67581e1e09b825453a9284472364161b4035dc98bba8b94bd114fe14ab513e9b73bd306482f1a5c4a73d1281b41e791fd7
|
7
|
+
data.tar.gz: 05a0c3b718aabf16aa1b355fc249cfbcedc60736a69a80270e2a80546f3cda2ccb1417cc35789bd1af8e6faef9d9aaf622ac89b106341ad11718add86207cdcd
|
data/.travis.yml
CHANGED
@@ -9,6 +9,7 @@ rvm:
|
|
9
9
|
- 2.4
|
10
10
|
- 2.5
|
11
11
|
- 2.6
|
12
|
+
- 2.7
|
12
13
|
- ruby-head
|
13
14
|
- jruby
|
14
15
|
- jruby-head
|
@@ -21,7 +22,7 @@ gemfile:
|
|
21
22
|
before_install:
|
22
23
|
# Cannot use bundler 2.x due to dependency (mainly rails 4.2)
|
23
24
|
# Solution from https://github.com/rails/rails/blob/4-2-stable/.travis.yml
|
24
|
-
- "travis_retry gem update --system
|
25
|
+
- "travis_retry gem update --system --no-doc || travis_retry gem update --system --no-rdoc --no-ri"
|
25
26
|
- "travis_retry gem install bundler -v '<2'"
|
26
27
|
env:
|
27
28
|
global:
|
data/CHANGELOG.md
CHANGED
@@ -18,6 +18,14 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
18
18
|
- Nothing
|
19
19
|
|
20
20
|
|
21
|
+
## [2.8.2] - 2019-12-27
|
22
|
+
|
23
|
+
### Changed
|
24
|
+
|
25
|
+
- Use `delete_multiple_objects` when storage is `aws`
|
26
|
+
(https://github.com/AssetSync/asset_sync/pull/392)
|
27
|
+
|
28
|
+
|
21
29
|
## [2.8.1] - 2019-07-25
|
22
30
|
|
23
31
|
### Changed
|
@@ -922,7 +930,8 @@ Changes:
|
|
922
930
|
* Merge branch 'sinatra'
|
923
931
|
|
924
932
|
|
925
|
-
[Unreleased]: https://github.com/AssetSync/asset_sync/compare/v2.8.
|
933
|
+
[Unreleased]: https://github.com/AssetSync/asset_sync/compare/v2.8.2...HEAD
|
934
|
+
[2.8.2]: https://github.com/AssetSync/asset_sync/compare/v2.8.1...v2.8.2
|
926
935
|
[2.8.1]: https://github.com/AssetSync/asset_sync/compare/v2.8.0...v2.8.1
|
927
936
|
[2.8.0]: https://github.com/AssetSync/asset_sync/compare/v2.7.0...v2.8.0
|
928
937
|
[2.7.0]: https://github.com/AssetSync/asset_sync/compare/v2.6.0...v2.7.0
|
data/lib/asset_sync/storage.rb
CHANGED
@@ -132,9 +132,15 @@ module AssetSync
|
|
132
132
|
from_remote_files_to_delete = remote_files - local_files - ignored_files - always_upload_files
|
133
133
|
|
134
134
|
log "Flagging #{from_remote_files_to_delete.size} file(s) for deletion"
|
135
|
-
# Delete unneeded remote files
|
136
|
-
|
137
|
-
|
135
|
+
# Delete unneeded remote files, if we are on aws delete in bulk else use sequential delete
|
136
|
+
if self.config.aws? && connection.respond_to?(:delete_multiple_objects)
|
137
|
+
from_remote_files_to_delete.each_slice(500) do |slice|
|
138
|
+
connection.delete_multiple_objects(config.fog_directory, slice)
|
139
|
+
end
|
140
|
+
else
|
141
|
+
bucket.files.each do |f|
|
142
|
+
delete_file(f, from_remote_files_to_delete)
|
143
|
+
end
|
138
144
|
end
|
139
145
|
end
|
140
146
|
|
data/lib/asset_sync/version.rb
CHANGED
data/spec/unit/storage_spec.rb
CHANGED
@@ -307,4 +307,59 @@ describe AssetSync::Storage do
|
|
307
307
|
storage.upload_file('assets/some_longer_path/local_image2.jpg')
|
308
308
|
end
|
309
309
|
end
|
310
|
+
|
311
|
+
describe '#delete_extra_remote_files' do
|
312
|
+
it 'should delete the files in bulk' do
|
313
|
+
remote_files = ['public/image.png']
|
314
|
+
connection = double
|
315
|
+
config = double
|
316
|
+
|
317
|
+
storage = AssetSync::Storage.new(@config)
|
318
|
+
|
319
|
+
[:local_files, :ignored_files, :always_upload_files].each do |method|
|
320
|
+
expect(storage).to receive(method).and_return([])
|
321
|
+
end
|
322
|
+
|
323
|
+
allow(storage).to receive(:get_remote_files).and_return(remote_files)
|
324
|
+
allow(storage).to receive(:connection).and_return(connection).twice
|
325
|
+
allow(storage).to receive(:config).and_return(config).twice
|
326
|
+
allow(config).to receive(:aws?).and_return(true)
|
327
|
+
allow(config).to receive(:fog_directory).and_return('foo')
|
328
|
+
expect(connection).to receive(:delete_multiple_objects).with('foo', remote_files)
|
329
|
+
|
330
|
+
storage.delete_extra_remote_files
|
331
|
+
end
|
332
|
+
|
333
|
+
context 'when not aws' do
|
334
|
+
it 'deletes files sequentially' do
|
335
|
+
remote_files = ['public/image.png']
|
336
|
+
connection = double
|
337
|
+
config = double
|
338
|
+
directories = double
|
339
|
+
directory = double
|
340
|
+
file = double
|
341
|
+
|
342
|
+
storage = AssetSync::Storage.new(@config)
|
343
|
+
|
344
|
+
[:local_files, :ignored_files, :always_upload_files].each do |method|
|
345
|
+
expect(storage).to receive(method).and_return([])
|
346
|
+
end
|
347
|
+
|
348
|
+
allow(storage).to receive(:get_remote_files).and_return(remote_files)
|
349
|
+
allow(storage).to receive(:connection).and_return(connection).twice
|
350
|
+
allow(storage).to receive(:config).and_return(config)
|
351
|
+
allow(config).to receive(:aws?).and_return(false)
|
352
|
+
allow(config).to receive(:fog_directory).and_return('foo')
|
353
|
+
allow(config).to receive(:assets_prefix).and_return('foo')
|
354
|
+
allow(directories).to receive(:get).and_return(directory)
|
355
|
+
allow(directory).to receive(:files).and_return([file])
|
356
|
+
allow(file).to receive(:key).and_return('public/image.png')
|
357
|
+
allow(connection).to receive(:directories).and_return(directories)
|
358
|
+
expect(connection).not_to receive(:delete_multiple_objects)
|
359
|
+
expect(file).to receive(:destroy)
|
360
|
+
|
361
|
+
storage.delete_extra_remote_files
|
362
|
+
end
|
363
|
+
end
|
364
|
+
end
|
310
365
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asset_sync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.8.
|
4
|
+
version: 2.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simon Hamilton
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2019-
|
14
|
+
date: 2019-12-27 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: fog-core
|
@@ -257,7 +257,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
257
257
|
- !ruby/object:Gem::Version
|
258
258
|
version: '0'
|
259
259
|
requirements: []
|
260
|
-
rubygems_version: 3.
|
260
|
+
rubygems_version: 3.1.2
|
261
261
|
signing_key:
|
262
262
|
specification_version: 4
|
263
263
|
summary: Synchronises Assets in a Rails 3 application and Amazon S3/Cloudfront and
|