kungfuig 0.6.42 → 0.6.73
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/kungfuig/jobber.rb +20 -1
- data/lib/kungfuig/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e20e38132697789e93ab8f317969d8402fedb3f
|
4
|
+
data.tar.gz: 08844129c3dbf30e1554ccbddf77e45346cbdf80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f2014a678c4f99ef764eb97604ab9368632f50a9c009f0df8be68f522f36dc33eca19eb13eb975014bd4c8f9cdaeb4fb958ca27b4272ef8987d603d7068348b
|
7
|
+
data.tar.gz: b17420b33161841feb3f5a96daa66e4da34c50acd52cdd211e4d6d57d55ea73e2b0d4b1c39c3c2b17dc81a7594bdfeb6cfa3bb2ad05714db8f08d15e0eed1a93
|
data/lib/kungfuig/jobber.rb
CHANGED
@@ -9,6 +9,23 @@ rescue LoadError
|
|
9
9
|
end
|
10
10
|
|
11
11
|
module Kungfuig
|
12
|
+
class JobberError < StandardError
|
13
|
+
end
|
14
|
+
|
15
|
+
module Worker
|
16
|
+
def self.prepended base
|
17
|
+
raise JobberError.new("Must be prepended to class defining ‘perform’ method!") unless base.instance_methods.include?(:perform)
|
18
|
+
base.send(:include, Sidekiq::Worker) unless base.ancestors.include? Sidekiq::Worker
|
19
|
+
end
|
20
|
+
|
21
|
+
def perform *args, **params
|
22
|
+
args.select { |arg| arg.is_a?(Hash) }.each do |arg|
|
23
|
+
params.merge! args.delete(arg).map { |k, v| [k.to_sym, v] }.to_h
|
24
|
+
end
|
25
|
+
super(*args, **params)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
12
29
|
# Generic helper for massive attaching aspects
|
13
30
|
class Jobber
|
14
31
|
class << self
|
@@ -35,7 +52,9 @@ module Kungfuig
|
|
35
52
|
@hash[c.name] && @hash[c.name][method]
|
36
53
|
end)
|
37
54
|
|
38
|
-
Kernel.const_get(@hash[receiver_class.name][method])
|
55
|
+
destination = Kernel.const_get(@hash[receiver_class.name][method])
|
56
|
+
destination.send(:prepend, Kungfuig::Worker) unless destination.ancestors.include? Kungfuig::Worker
|
57
|
+
destination.perform_async(receiver: r, method: method, result: result, args: args, params: params)
|
39
58
|
rescue => e
|
40
59
|
Kungfuig.✍(receiver: [
|
41
60
|
"Fail [#{e.message}]",
|
data/lib/kungfuig/version.rb
CHANGED