mumukit-nuntius 6.2.0 → 6.5.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: 6290423d3bf8e1fb0d08e90386caa77c6bfaf6582ee26e54e37e66924155d87e
4
- data.tar.gz: 60a419e3f1ce45ecbfd1cd258abf1ead89e72a9ad406e5efa05bcc328477b500
3
+ metadata.gz: 5b51e0917adc22fad9e3173aaf9fd3dd4e5bfd9b5ad887c85ffc549c6625eb0a
4
+ data.tar.gz: 5b342931d64d9c9892fd58c699cee86096d01038381ea8ab52b16f742ff74d23
5
5
  SHA512:
6
- metadata.gz: 90e671c8b4fb574c3a609ff79b470653b99f5d9e5bff1e5defc6bdf680144ad216589afac15147b9b997572ff70f091601344abdca16e275f46f6ea1306b9437
7
- data.tar.gz: e60b62a1291d7f505e654fc47309f179be79ffe54465f8043172362c14dfe3b4faf818b8a782fa2cc7b67d8fb326d7195550c2710fdbf756bb74fe8172b2a418
6
+ metadata.gz: f7d416c63759d6759d9c2448e5d164c2329e15fbfd344e30a8854b142f0fe1c70e4ca063a5da40c99e4c4c42abfc799167f4e900d401ff510bfb8161d00108ab
7
+ data.tar.gz: a4d7c7507130cf7a76ae0f15f75b3e0b3de018e38b2dab59913e9bddbef21fa96e93f0d11226bf717edcd147ce96f1afffa74f41b531d334cfab5a9b5d230578
@@ -43,14 +43,18 @@ module Mumukit
43
43
  #
44
44
  # @param [String|Symbol] type the type of event.
45
45
  # @param [Hash] event a json-like hash with the event data
46
- def self.notify_event!(type, event)
47
- notification_mode.notify_event! type, event
46
+ def self.notify_event!(type, event, **options)
47
+ notification_mode.notify_event! type, event, **options
48
48
  end
49
49
 
50
50
  def self.establish_connection
51
51
  notification_mode.establish_connection
52
52
  end
53
53
 
54
+ def self.ensure_connection
55
+ establish_connection rescue nil
56
+ end
57
+
54
58
  private
55
59
 
56
60
  def self.notification_mode
@@ -5,12 +5,24 @@ module Mumukit::Nuntius::EventConsumer
5
5
  end
6
6
 
7
7
  def event(key, &block)
8
- @handlers[key] = block
8
+ @handlers[key] = with_database_reconnection &block
9
9
  end
10
10
 
11
11
  def build
12
12
  @handlers.with_indifferent_access
13
13
  end
14
+
15
+ private
16
+
17
+ def with_database_reconnection(&block)
18
+ return block unless defined? ActiveRecord
19
+ proc do |*args|
20
+ ActiveRecord::Base.connection_pool.with_connection do
21
+ block.call(*args)
22
+ end
23
+ end
24
+ end
25
+
14
26
  end
15
27
 
16
28
  class << self
@@ -48,15 +60,15 @@ module Mumukit::Nuntius::EventConsumer
48
60
  log_unknown_event event
49
61
  end
50
62
  rescue => e
51
- log_exception(event, e)
63
+ log_exception(event, e, body[:data])
52
64
  end
53
65
 
54
66
  def log_unknown_event(event)
55
67
  Mumukit::Nuntius::Logger.info "Unhandled event: #{event} does not exists."
56
68
  end
57
69
 
58
- def log_exception(event, e)
59
- Mumukit::Nuntius::Logger.error "Failed to proccess #{event}, error was: #{e}"
70
+ def log_exception(event, e, body)
71
+ Mumukit::Nuntius::Logger.error "Failed to proccess #{event}, error was: #{e}, body was: #{body}"
60
72
  end
61
73
  end
62
74
  end
@@ -2,9 +2,9 @@ module Mumukit::Nuntius::EventPublisher
2
2
 
3
3
  class << self
4
4
 
5
- def publish(event, payload)
6
- payload.merge!(sender: Mumukit::Nuntius.config.app_name)
7
- Mumukit::Nuntius::Publisher.publish "events", { data: payload }, { type: event }
5
+ def publish(event, payload, **options)
6
+ payload.merge!(sender: Mumukit::Nuntius.config.app_name).merge!(options)
7
+ Mumukit::Nuntius::Publisher.publish "events", {data: payload}, {type: event}
8
8
  end
9
9
 
10
10
  end
@@ -4,8 +4,8 @@ module Mumukit::Nuntius::NotificationMode
4
4
  Mumukit::Nuntius::Publisher.publish queue_name, event
5
5
  end
6
6
 
7
- def notify_event!(type, data)
8
- Mumukit::Nuntius::EventPublisher.publish type, data
7
+ def notify_event!(type, data, **options)
8
+ Mumukit::Nuntius::EventPublisher.publish type, data, **options
9
9
  end
10
10
 
11
11
  def establish_connection
@@ -1,5 +1,5 @@
1
1
  module Mumukit
2
2
  module Nuntius
3
- VERSION = '6.2.0'
3
+ VERSION = '6.5.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mumukit-nuntius
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.2.0
4
+ version: 6.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustin Pina
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-11-21 00:00:00.000000000 Z
12
+ date: 2020-11-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -17,42 +17,42 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '1.7'
20
+ version: '2.0'
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '1.7'
27
+ version: '2.0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rake
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '10.0'
34
+ version: '12.3'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '10.0'
41
+ version: '12.3'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rspec
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '3'
48
+ version: '3.0'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '3'
55
+ version: '3.0'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: mumukit-core
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -121,8 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
121
  - !ruby/object:Gem::Version
122
122
  version: '0'
123
123
  requirements: []
124
- rubyforge_project:
125
- rubygems_version: 2.7.8
124
+ rubygems_version: 3.0.8
126
125
  signing_key:
127
126
  specification_version: 4
128
127
  summary: Library for working with rabbit queues