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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1284fc9112871e906cb0ff7acc4f49a54d6d4866fb23acbcef202d31266454e7
4
- data.tar.gz: 13ea4ab7e4f5426dae02de27f5e5a76c498234ef05404f9ead13cc045c22bd79
3
+ metadata.gz: d00a4ad9dfb343dd7c975ce3197ba9f93c3ecfaf3ae4093fc0d4a8046070da4f
4
+ data.tar.gz: d89f9682d621c6a1be794c58b9b2158120e9e2eafc00a82a65cc8f9f14c40fbd
5
5
  SHA512:
6
- metadata.gz: 54cac815655a8a5a33d2199efdcae01300982c249b2e1ba8ced0c1bf69fd6f60ad6de4b34eba3e767fdb03acce0d1bcf04f747cd2d757d760ee96699d77828fd
7
- data.tar.gz: 6e4ce5bc06344ff61440264bb4170b22ea4a392637246039d56a2aed2950b5cf8d01b092dfbd5a866f1abb79cf81e857d0353bebba54a575a2a5b9c76f9f34eb
6
+ metadata.gz: 756707a60232079362b4aca24c1eb65577286c5d077593707897b8f02532e415c00ff60aa1f8121857242d68528e303ee9ff082f78281578df56c3b6109e3d4d
7
+ data.tar.gz: e97171744f54bf0dad1f8439b3bd76bd0944c69d9d8c99713c32c15764bc3e3976dca51178769530b50a990bd03184ccc22c5d90476019bee4cd6b891aece84e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wisper-activejob-broadcaster (0.2.1)
4
+ wisper-activejob-broadcaster (0.3.0)
5
5
  activejob
6
6
  wisper
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Wisper
2
2
  module Activejob
3
3
  module Broadcaster
4
- VERSION = '0.2.1'.freeze
4
+ VERSION = '0.3.0'.freeze
5
5
  end
6
6
  end
7
7
  end
@@ -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.2.1
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 00:00:00.000000000 Z
11
+ date: 2022-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: wisper