asset_cloud 2.7.0 → 2.7.1
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/.github/workflows/ci.yml +27 -0
- data/History.md +4 -0
- data/README.rdoc +3 -4
- data/asset_cloud.gemspec +1 -1
- data/lib/asset_cloud/callbacks.rb +3 -3
- data/spec/callbacks_spec.rb +18 -0
- metadata +4 -4
- data/.travis.yml +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b202062a28470fab35e4aadafe3600f7944d2cb075d0076274acfd72dd93a6e
|
4
|
+
data.tar.gz: ad42d5f81dbe67cfde24248c3f8f8b2cb5d9bd1694be44d98546f234c8ef703b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c22411e548811567b511d54b55b79591835721aefd3a34b89ab504871473a477eddbb0903e7c30292c2fefa0e7c51b54b0a94e8ae3081961b40bfb8a69287de4
|
7
|
+
data.tar.gz: 822630e44304e0e2507d01a9e162898bd0c053ade3eabe785c625e407216c7a54166087c270f5166c63261cc98757664c201a6472cb474034b5c7a3af389679f
|
@@ -0,0 +1,27 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
name: Ruby ${{ matrix.ruby }}
|
9
|
+
strategy:
|
10
|
+
matrix:
|
11
|
+
ruby: ["2.5", "2.6", "2.7"]
|
12
|
+
steps:
|
13
|
+
|
14
|
+
- name: Check out code
|
15
|
+
uses: actions/checkout@v3
|
16
|
+
|
17
|
+
- name: Set up Ruby ${{ matrix.ruby }}
|
18
|
+
uses: ruby/setup-ruby@v1
|
19
|
+
with:
|
20
|
+
ruby-version: ${{ matrix.ruby }}
|
21
|
+
bundler-cache: true
|
22
|
+
|
23
|
+
- name: RuboCop
|
24
|
+
run: bundle exec rubocop || true # until we fix offenses due to outdated config
|
25
|
+
|
26
|
+
- name: Tests
|
27
|
+
run: bundle exec rspec
|
data/History.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Asset Cloud Version History
|
2
2
|
|
3
|
+
## Version 2.7.1, 2022-03-18
|
4
|
+
|
5
|
+
* Fix incorrect invocation of callbacks defined in external classes (https://github.com/Shopify/asset_cloud/issues/71)
|
6
|
+
|
3
7
|
## Version 2.7.0, 2020-07-15
|
4
8
|
|
5
9
|
* Add `Asset#write!` which raises on validation failure (https://github.com/Shopify/asset_cloud/pull/67)
|
data/README.rdoc
CHANGED
@@ -34,13 +34,12 @@ With GCS Remote test:
|
|
34
34
|
|
35
35
|
Releasing is handled by Shopify's internal Shipit server.
|
36
36
|
|
37
|
-
After merging a change, a separate PR should be opened to update
|
38
|
-
(following
|
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
39
|
|
40
40
|
When merged, the new release will be automatically tagged and deployed to rubygems.org.
|
41
41
|
|
42
|
-
Note that the automatic process does not create a new [
|
43
|
-
GitHub.
|
42
|
+
Note that the automatic process does not create a new {release}[https://github.com/Shopify/asset_cloud/releases] on GitHub.
|
44
43
|
|
45
44
|
== Copyright
|
46
45
|
|
data/asset_cloud.gemspec
CHANGED
@@ -59,15 +59,15 @@ module AssetCloud
|
|
59
59
|
|
60
60
|
def execute_callbacks(symbol, args)
|
61
61
|
callbacks_for(symbol).each do |callback|
|
62
|
-
|
62
|
+
|
63
63
|
result = case callback
|
64
64
|
when Symbol
|
65
65
|
send(callback, *args)
|
66
66
|
when Proc, Method
|
67
67
|
callback.call(self, *args)
|
68
68
|
else
|
69
|
-
if callback.respond_to?(
|
70
|
-
callback.send(
|
69
|
+
if callback.respond_to?(symbol)
|
70
|
+
callback.send(symbol, self, *args)
|
71
71
|
else
|
72
72
|
raise StandardError, "Callbacks must be a symbol denoting the method to call, a string to be evaluated, a block to be invoked, or an object responding to the callback method."
|
73
73
|
end
|
data/spec/callbacks_spec.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
+
|
5
|
+
class AfterStoreCallback
|
6
|
+
def self.after_store(*args); end
|
7
|
+
end
|
8
|
+
|
4
9
|
class CallbackAsset < AssetCloud::Asset
|
5
10
|
before_store :callback_before_store
|
6
11
|
before_delete :callback_before_delete
|
@@ -9,6 +14,8 @@ class CallbackAsset < AssetCloud::Asset
|
|
9
14
|
after_validate :add_spice
|
10
15
|
validate :valid_value
|
11
16
|
|
17
|
+
after_store ::AfterStoreCallback
|
18
|
+
|
12
19
|
private
|
13
20
|
|
14
21
|
def callback_before_delete(*args); end
|
@@ -143,4 +150,15 @@ describe CallbackAsset do
|
|
143
150
|
|
144
151
|
expect(@asset.delete).to(eq(nil))
|
145
152
|
end
|
153
|
+
|
154
|
+
it "should invoke after_store callback defined in separate class" do
|
155
|
+
local_fs = BasicCloud.new(File.dirname(__FILE__) + '/files', 'http://assets/')
|
156
|
+
local_fs.write('callback_assets/foo', 'bar')
|
157
|
+
local_asset = local_fs.asset_at('callback_assets/foo')
|
158
|
+
|
159
|
+
expect(local_asset).to(receive(:callback_before_store).and_return(true))
|
160
|
+
expect(::AfterStoreCallback).to(receive(:after_store))
|
161
|
+
|
162
|
+
expect(local_asset.store).to(eq(true))
|
163
|
+
end
|
146
164
|
end
|
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.7.
|
4
|
+
version: 2.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -101,10 +101,10 @@ extensions: []
|
|
101
101
|
extra_rdoc_files: []
|
102
102
|
files:
|
103
103
|
- ".github/probots.yml"
|
104
|
+
- ".github/workflows/ci.yml"
|
104
105
|
- ".gitignore"
|
105
106
|
- ".rubocop.yml"
|
106
107
|
- ".rubocop_todo.yml"
|
107
|
-
- ".travis.yml"
|
108
108
|
- Gemfile
|
109
109
|
- History.md
|
110
110
|
- LICENSE
|
@@ -172,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: '0'
|
174
174
|
requirements: []
|
175
|
-
rubygems_version: 3.
|
175
|
+
rubygems_version: 3.2.20
|
176
176
|
signing_key:
|
177
177
|
specification_version: 4
|
178
178
|
summary: An abstraction layer around arbitrary and diverse asset stores.
|