asset_cloud 2.6.1 → 2.7.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 +4 -4
- data/History.md +4 -0
- data/README.rdoc +13 -1
- data/asset_cloud.gemspec +1 -1
- data/lib/asset_cloud/base.rb +6 -0
- data/spec/base_spec.rb +21 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8573a0d845bd6022d3540cbb6e28027637bea815896060a6637ed70402fb0614
|
4
|
+
data.tar.gz: df5f502bd556e2414ee896327ba18c54ce679faa2a2ebcf5b50a630803454719
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7302dd7d0e4e4ca392b344c530d3ebd3e610c25e5e6aa45658582944e2333ca66371e511e911f93e38f471815fb184a7d2c52d38dadfdda172a33ff7ff90e6ec
|
7
|
+
data.tar.gz: 91a7fcfaf2dddbb1b855d6b25cadd563c414e09a625ceafdaaecf68faf07d4b89a6e80b89ab9cd2f264098f3ab9f1f387cf08f8ec8bcde19b67179045989bf40
|
data/History.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Asset Cloud Version History
|
2
2
|
|
3
|
+
## Version 2.7.0, 2020-07-15
|
4
|
+
|
5
|
+
* Add `Asset#write!` which raises on validation failure (https://github.com/Shopify/asset_cloud/pull/67)
|
6
|
+
|
3
7
|
## Version 2.6.0, 2020-05-22
|
4
8
|
|
5
9
|
* Add checksum to metadata (https://github.com/Shopify/asset_cloud/pull/57)
|
data/README.rdoc
CHANGED
@@ -9,7 +9,7 @@ An abstraction layer around arbitrary and diverse asset stores.
|
|
9
9
|
+value_hash+ is intended as a *private* hash/checksum, not exposed to end users. Its underlying algorithm is private, and
|
10
10
|
could change over time so should not be relied on by clients.
|
11
11
|
|
12
|
-
+checksum+ is intended as a *public* hash/checksum, exposed to end users. Its underlying
|
12
|
+
+checksum+ is intended as a *public* hash/checksum, exposed to end users. Its underlying algorithm is documented (e.g. MD5)
|
13
13
|
and is not expected to change.
|
14
14
|
|
15
15
|
== Installation
|
@@ -30,6 +30,18 @@ With GCS Remote test:
|
|
30
30
|
|
31
31
|
GCS_PROJECT_ID="<project_id>" GCS_KEY_FILEPATH="<path_to_key>" GCS_BUCKET="<bucket_name>" bundle exec rake spec
|
32
32
|
|
33
|
+
== Releasing
|
34
|
+
|
35
|
+
Releasing is handled by Shopify's internal Shipit server.
|
36
|
+
|
37
|
+
After merging a change, a separate PR should be opened to update `History.md` and bump the version
|
38
|
+
(following [Semantic Versioning](https://semver.org/))
|
39
|
+
|
40
|
+
When merged, the new release will be automatically tagged and deployed to rubygems.org.
|
41
|
+
|
42
|
+
Note that the automatic process does not create a new [release](https://github.com/Shopify/asset_cloud/releases) on
|
43
|
+
GitHub.
|
44
|
+
|
33
45
|
== Copyright
|
34
46
|
|
35
47
|
Copyright (c) 2008-2014 Tobias Lütke & Shopify, Inc. Released under the MIT license (see LICENSE for details).
|
data/asset_cloud.gemspec
CHANGED
data/lib/asset_cloud/base.rb
CHANGED
@@ -151,6 +151,12 @@ module AssetCloud
|
|
151
151
|
bucket_for(key).write(key, value)
|
152
152
|
end
|
153
153
|
|
154
|
+
def write!(key, value)
|
155
|
+
asset = self[key]
|
156
|
+
asset.value = value
|
157
|
+
asset.store!
|
158
|
+
end
|
159
|
+
|
154
160
|
def read(key)
|
155
161
|
logger.info { " [#{self.class.name}] Reading from #{key}" } if logger
|
156
162
|
|
data/spec/base_spec.rb
CHANGED
@@ -7,11 +7,18 @@ end
|
|
7
7
|
class LiquidAsset < AssetCloud::Asset
|
8
8
|
end
|
9
9
|
|
10
|
+
class BrokenBucket < AssetCloud::Bucket
|
11
|
+
def write(*)
|
12
|
+
false
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
10
16
|
class BasicCloud < AssetCloud::Base
|
11
17
|
bucket :special, AssetCloud::MemoryBucket, asset_class: SpecialAsset
|
12
18
|
bucket :conditional, AssetCloud::MemoryBucket, asset_class: proc { |key|
|
13
19
|
LiquidAsset if key.ends_with?('.liquid')
|
14
20
|
}
|
21
|
+
bucket :broken, BrokenBucket, asset_class: AssetCloud::Asset
|
15
22
|
end
|
16
23
|
|
17
24
|
describe BasicCloud do
|
@@ -192,6 +199,20 @@ describe BasicCloud do
|
|
192
199
|
end
|
193
200
|
end
|
194
201
|
|
202
|
+
describe "write!" do
|
203
|
+
it "should write through the Asset object (and thus run any callbacks on the asset)" do
|
204
|
+
special_asset = double(:special_asset)
|
205
|
+
expect(special_asset).to(receive(:value=).with('fancy fancy!'))
|
206
|
+
expect(special_asset).to(receive(:store!))
|
207
|
+
expect(SpecialAsset).to(receive(:at).and_return(special_asset))
|
208
|
+
@fs.write!('special/fancy.txt', 'fancy fancy!')
|
209
|
+
end
|
210
|
+
|
211
|
+
it "should raise AssetNotSaved when write fails" do
|
212
|
+
expect { @fs.write!('broken/file.txt', 'n/a') }.to(raise_error(AssetCloud::AssetNotSaved))
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
195
216
|
describe "MATCH_BUCKET" do
|
196
217
|
it "should match following stuff " do
|
197
218
|
'products/key.txt' =~ AssetCloud::Base::MATCH_BUCKET
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asset_cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|