perform-later 1.0.0.alpha.4 → 1.0.0.alpha.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 245b13ea7a1a957b590fa9c89ab100bb8994ad10
4
- data.tar.gz: 74909b8e458885aeae04b9ac98d29b7cd3bb7b64
3
+ metadata.gz: a7da3d0e8eda78f92e2f4a34a83f5c097f65388a
4
+ data.tar.gz: 3feafe990731366a50be268915fba122c7ff0594
5
5
  SHA512:
6
- metadata.gz: 3d5c03a768c54045313f23ffbc55f5b24cc6236060354a1d277edff14541de83e1495738d0f877f1fb0974030ec0c66d83bb8e78edc62c958b500b51922d23bb
7
- data.tar.gz: 9c298a93da63f221b1aedbcf4f98c8c96071811f20bc62853f455affc54110fb4ab187427e78b3d15bb1872add9928560738511d33b2287841df083e4387e7a3
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 => {after_initialize: :setup_from_async}}
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, after_initialize: :setup_from_async
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
- call_after_initialize(config[:after_initialize], *args)
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 call_after_initialize(call, *args)
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
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 00:00:00.000000000 Z
11
+ date: 2016-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sidekiq