perform-later 1.0.0.alpha.4 → 1.0.0.alpha.5
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/lib/perform_later/aliasing.rb +15 -2
- data/lib/perform_later/delegation.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7da3d0e8eda78f92e2f4a34a83f5c097f65388a
|
4
|
+
data.tar.gz: 3feafe990731366a50be268915fba122c7ff0594
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfa912a8135239477e4071bd4bf8a31b4d4866beeecf353638cbe9290b5c63d0a3e9fa8a8618b012272a7091c2a6665613df76e5d5b27d2bb3e5dc7e0b8ba235
|
7
|
+
data.tar.gz: cbb1d4a69ea704f0abe9e76c97e38ada5e056999da9d1189cd23a32254874c9762868a4147b7e0ccbe29f663428b6242d3689f313a2c162a8fee97c7b48275de
|
@@ -9,7 +9,7 @@ module PerformLater
|
|
9
9
|
# through an asyncronous bus.
|
10
10
|
#
|
11
11
|
# example:
|
12
|
-
# { :do_work => {
|
12
|
+
# { :do_work => {after_deserialize: :setup_from_async}}
|
13
13
|
#
|
14
14
|
# note: sidekiq has implementation of class_attribute
|
15
15
|
class_attribute :perform_later_configs
|
@@ -27,7 +27,7 @@ module PerformLater
|
|
27
27
|
# def do_work
|
28
28
|
# end
|
29
29
|
#
|
30
|
-
# perform_later :do_work,
|
30
|
+
# perform_later :do_work, after_deserialize: :setup_from_async
|
31
31
|
#
|
32
32
|
# private
|
33
33
|
#
|
@@ -40,9 +40,22 @@ module PerformLater
|
|
40
40
|
self.perform_later_configs[method.to_s] = opts
|
41
41
|
|
42
42
|
define_singleton_method "#{method}_later", ->(*args) do
|
43
|
+
args = call_before_serialize(opts[:before_serialize], args)
|
43
44
|
perform_async(method, *args)
|
44
45
|
end
|
45
46
|
singleton_class.send(:alias_method, "#{method}_async", "#{method}_later")
|
46
47
|
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def call_before_serialize(call, args)
|
52
|
+
case call
|
53
|
+
when Symbol
|
54
|
+
self.send(call, *args)
|
55
|
+
else
|
56
|
+
# null or unsupported call type, return untouched args
|
57
|
+
args
|
58
|
+
end
|
59
|
+
end
|
47
60
|
end
|
48
61
|
end
|
@@ -3,14 +3,14 @@ module PerformLater
|
|
3
3
|
|
4
4
|
def perform(method, *args)
|
5
5
|
config = perform_later_configs[method] || {}
|
6
|
-
|
6
|
+
call_after_deserialize(config[:after_deserialize], *args)
|
7
7
|
|
8
8
|
self.send method
|
9
9
|
end
|
10
10
|
|
11
11
|
private
|
12
12
|
|
13
|
-
def
|
13
|
+
def call_after_deserialize(call, *args)
|
14
14
|
case call
|
15
15
|
when Symbol
|
16
16
|
self.send(call, *args)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: perform-later
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.alpha.
|
4
|
+
version: 1.0.0.alpha.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Prothro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sidekiq
|