wisper-activejob-broadcaster 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/wisper/activejob/broadcaster/version.rb +1 -1
- data/lib/wisper/activejob/broadcaster.rb +31 -1
- 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: d00a4ad9dfb343dd7c975ce3197ba9f93c3ecfaf3ae4093fc0d4a8046070da4f
|
4
|
+
data.tar.gz: d89f9682d621c6a1be794c58b9b2158120e9e2eafc00a82a65cc8f9f14c40fbd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 756707a60232079362b4aca24c1eb65577286c5d077593707897b8f02532e415c00ff60aa1f8121857242d68528e303ee9ff082f78281578df56c3b6109e3d4d
|
7
|
+
data.tar.gz: e97171744f54bf0dad1f8439b3bd76bd0944c69d9d8c99713c32c15764bc3e3976dca51178769530b50a990bd03184ccc22c5d90476019bee4cd6b891aece84e
|
data/Gemfile.lock
CHANGED
@@ -13,9 +13,39 @@ module Wisper
|
|
13
13
|
def perform?(subscriber, event, args)
|
14
14
|
# If a predicate method of the format "event_name?" is defined on the subscriber, only run
|
15
15
|
# the subscriber if it evaluates to true
|
16
|
-
return subscriber.send("#{event}?", *args) if subscriber.respond_to?("#{event}?")
|
16
|
+
return subscriber.send("perform_#{event}?", *args) if subscriber.respond_to?("perform_#{event}?")
|
17
17
|
|
18
18
|
true
|
19
|
+
rescue StandardError
|
20
|
+
raise DispatchError.new(subscriber, event, args)
|
21
|
+
end
|
22
|
+
|
23
|
+
class DispatchError < StandardError
|
24
|
+
def initialize(subscriber, event, args)
|
25
|
+
super("Unable to perform #{name(subscriber)}##{event}(#{args_info(args)})")
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
# Copied from LoggerBroadcaster
|
31
|
+
def name(object)
|
32
|
+
id_method = %w(id uuid key object_id).find do |method_name|
|
33
|
+
object.respond_to?(method_name) && object.method(method_name).arity <= 0
|
34
|
+
end
|
35
|
+
id = object.send(id_method)
|
36
|
+
class_name = object.class == Class ? object.name : object.class.name
|
37
|
+
"#{class_name}##{id}"
|
38
|
+
end
|
39
|
+
|
40
|
+
def args_info(args)
|
41
|
+
return if args.empty?
|
42
|
+
|
43
|
+
args.map do |arg|
|
44
|
+
arg_string = name(arg)
|
45
|
+
arg_string += ": #{arg.inspect}" if [Numeric, Array, Hash, String].any? {|klass| arg.is_a?(klass) }
|
46
|
+
arg_string
|
47
|
+
end.join(', ')
|
48
|
+
end
|
19
49
|
end
|
20
50
|
end
|
21
51
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wisper-activejob-broadcaster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BetterUp Developers
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-01-
|
11
|
+
date: 2022-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: wisper
|