rabbit_messaging 0.7.1 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/.travis.yml +1 -2
- data/CHANGELOG.md +22 -0
- data/README.md +17 -0
- data/lib/rabbit.rb +2 -0
- data/lib/rabbit/daemon.rb +1 -1
- data/lib/rabbit/event_handler.rb +7 -4
- data/lib/rabbit/publishing.rb +14 -33
- data/lib/rabbit/publishing/channels_pool.rb +74 -0
- data/lib/rabbit/publishing/message.rb +7 -5
- data/lib/rabbit/receiving/job.rb +6 -8
- data/lib/rabbit/receiving/message.rb +13 -6
- data/lib/rabbit/receiving/queue.rb +39 -0
- data/lib/rabbit/receiving/receive.rb +63 -0
- data/lib/rabbit/receiving/worker.rb +20 -43
- data/lib/rabbit/version.rb +1 -1
- data/rabbit_messaging.gemspec +3 -3
- metadata +14 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4cad15ae9d132080bcf28a14883df7a97a5f010bc87e32b7904467d136404741
|
4
|
+
data.tar.gz: bd799cfe37ffd1ef3d8b139fae8440807efe44a10fe886d19b3a2cdfaac9426b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e417cacf4032d25f7452e77eb9f2bd966f5933f1d6fc0334c785b34ba482824d8920f548dc8ce848be7db969c75f0496d22e6554b2cf65cf59a60b7290046486
|
7
|
+
data.tar.gz: 4843680308d9d9c882fad903d003f4b973fc23860af14c8a3f29138187726cba6182974a91eed83cd723e73d9223b6d4b8710f0c05fe8d0af3223519296d77b9
|
data/.rubocop.yml
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,28 @@
|
|
1
1
|
# Changelog
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
+
## [0.8.1] - 2020-11-05
|
5
|
+
### Added
|
6
|
+
- channels pool for manage channels on Publisher connection
|
7
|
+
### Changed
|
8
|
+
- Publisher use channels pool for access to channel
|
9
|
+
|
10
|
+
## [0.8.0] - 2020-10-28
|
11
|
+
### Added
|
12
|
+
- class Rabbit::Recieving::Receive for message processing
|
13
|
+
- class Rabbit::Recieving::Queue for queue name determination when receiving
|
14
|
+
- message_id argument in published and received messages
|
15
|
+
- before and after hooks when processing message
|
16
|
+
- specs for new functionality
|
17
|
+
- arguments attribute in received message and handler (contain raw message arguments with exchange and routing_key from the delivery_info)
|
18
|
+
|
19
|
+
### Changed
|
20
|
+
- Rabbit::Receiving::Worker refactoring (message processing moved to a separate class)
|
21
|
+
- ruby version upped to 2.5
|
22
|
+
- rubocop ruby target version set to 2.5
|
23
|
+
- some fixes of updated rubocop and ruby warnings
|
24
|
+
- heavy refactoring of old specs for receiving
|
25
|
+
|
4
26
|
## [0.7.1] - 2020-06-09
|
5
27
|
### Changed
|
6
28
|
- (Partially Fixed) Support for pre-defined logger injection on Sneakers moudle;
|
data/README.md
CHANGED
@@ -71,6 +71,22 @@ require "rabbit_messaging"
|
|
71
71
|
config.exception_notifier = proc { |e| MyCoolNotifier.notify!(e) }
|
72
72
|
```
|
73
73
|
|
74
|
+
* `before_receiving_hooks, after_receiving_hooks` (`Array of Procs`)
|
75
|
+
|
76
|
+
Before and after hooks with message processing in the middle. Where `before_receiving_hooks` and `after_receiving_hooks` are empty arrays by default.
|
77
|
+
|
78
|
+
It's advised to NOT place procs with long execution time inside.
|
79
|
+
|
80
|
+
Setup:
|
81
|
+
|
82
|
+
```ruby
|
83
|
+
config.before_receiving_hooks.append(proc { |message, arguments| do_stuff_1 })
|
84
|
+
config.before_receiving_hooks.append(proc { |message, arguments| do_stuff_2 })
|
85
|
+
|
86
|
+
config.after_receiving_hooks.append(proc { |message, arguments| do_stuff_3 })
|
87
|
+
config.after_receiving_hooks.append(proc { |message, arguments| do_stuff_4 })
|
88
|
+
|
89
|
+
```
|
74
90
|
---
|
75
91
|
|
76
92
|
### Client
|
@@ -83,6 +99,7 @@ Rabbit.publish(
|
|
83
99
|
exchange_name: 'fanout', # default is fine too
|
84
100
|
confirm_select: true, # setting this to false grants you great speed up and absolutelly no guarantees
|
85
101
|
headers: { "foo" => "bar" }, # custom arguments for routing, default is {}
|
102
|
+
message_id: "asdadsadsad", # A unique identifier such as a UUID that your application can use to identify the message.
|
86
103
|
)
|
87
104
|
```
|
88
105
|
|
data/lib/rabbit.rb
CHANGED
@@ -23,6 +23,8 @@ module Rabbit
|
|
23
23
|
attribute :queue_name_conversion
|
24
24
|
attribute :receiving_job_class_callable
|
25
25
|
attribute :exception_notifier, default: -> { default_exception_notifier }
|
26
|
+
attribute :before_receiving_hooks, default: []
|
27
|
+
attribute :after_receiving_hooks, default: []
|
26
28
|
|
27
29
|
attribute :receive_logger, default: lambda {
|
28
30
|
Logger.new(Rails.root.join("log", "incoming_rabbit_messages.log"))
|
data/lib/rabbit/daemon.rb
CHANGED
data/lib/rabbit/event_handler.rb
CHANGED
@@ -7,7 +7,9 @@ class Rabbit::EventHandler
|
|
7
7
|
include Tainbox
|
8
8
|
|
9
9
|
attribute :project_id
|
10
|
-
|
10
|
+
attribute :data
|
11
|
+
attribute :message_info
|
12
|
+
|
11
13
|
class_attribute :queue
|
12
14
|
class_attribute :ignore_queue_conversion, default: false
|
13
15
|
|
@@ -20,8 +22,9 @@ class Rabbit::EventHandler
|
|
20
22
|
end
|
21
23
|
|
22
24
|
def initialize(message)
|
23
|
-
self.attributes
|
24
|
-
self.data
|
25
|
-
self.project_id
|
25
|
+
self.attributes = message.data
|
26
|
+
self.data = message.data
|
27
|
+
self.project_id = message.project_id
|
28
|
+
self.message_info = message.arguments
|
26
29
|
end
|
27
30
|
end
|
data/lib/rabbit/publishing.rb
CHANGED
@@ -5,39 +5,32 @@ require "rabbit/publishing/message"
|
|
5
5
|
module Rabbit
|
6
6
|
module Publishing
|
7
7
|
autoload :Job, "rabbit/publishing/job"
|
8
|
+
autoload :ChannelsPool, "rabbit/publishing/channels_pool"
|
9
|
+
extend self
|
8
10
|
|
9
11
|
MUTEX = Mutex.new
|
10
12
|
|
11
|
-
|
13
|
+
def publish(msg)
|
14
|
+
return if Rabbit.config.environment.in? %i[test development]
|
12
15
|
|
13
|
-
|
14
|
-
|
16
|
+
pool.with_channel msg.confirm_select? do |ch|
|
17
|
+
ch.basic_publish *msg.basic_publish_args
|
15
18
|
|
16
|
-
|
17
|
-
|
19
|
+
raise MessageNotDelivered, "RabbitMQ message not delivered: #{msg}" \
|
20
|
+
if msg.confirm_select? && !ch.wait_for_confirms
|
18
21
|
|
19
|
-
|
20
|
-
raise MessageNotDelivered, "RabbitMQ message not delivered: #{message}"
|
21
|
-
else
|
22
|
-
log(message)
|
22
|
+
log msg
|
23
23
|
end
|
24
24
|
rescue Timeout::Error
|
25
25
|
raise MessageNotDelivered, <<~MESSAGE
|
26
|
-
Timeout while sending message #{
|
27
|
-
- #{
|
26
|
+
Timeout while sending message #{msg}. Possible reasons:
|
27
|
+
- #{msg.real_exchange_name} exchange is not found
|
28
28
|
- RabbitMQ is extremely high loaded
|
29
29
|
MESSAGE
|
30
30
|
end
|
31
31
|
|
32
|
-
def
|
33
|
-
MUTEX.synchronize { @
|
34
|
-
end
|
35
|
-
|
36
|
-
def channel(confirm)
|
37
|
-
Thread.current[:bunny_channels] ||= {}
|
38
|
-
channel = Thread.current[:bunny_channels][confirm]
|
39
|
-
Thread.current[:bunny_channels][confirm] = create_channel(confirm) unless channel&.open?
|
40
|
-
Thread.current[:bunny_channels][confirm]
|
32
|
+
def pool
|
33
|
+
MUTEX.synchronize { @pool ||= ChannelsPool.new(create_client) }
|
41
34
|
end
|
42
35
|
|
43
36
|
private
|
@@ -47,22 +40,10 @@ module Rabbit
|
|
47
40
|
end
|
48
41
|
|
49
42
|
def create_client
|
50
|
-
return if Rabbit.config.environment == :test
|
51
|
-
|
52
43
|
config = Rails.application.config_for("sneakers") rescue {}
|
53
44
|
config = config["bunny_options"].to_h.symbolize_keys
|
54
45
|
|
55
|
-
|
56
|
-
Bunny.new(config).start
|
57
|
-
rescue
|
58
|
-
raise unless Rabbit.config.environment == :development
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def create_channel(confirm)
|
63
|
-
channel = client.create_channel
|
64
|
-
channel.confirm_select if confirm
|
65
|
-
channel
|
46
|
+
Bunny.new(config).start
|
66
47
|
end
|
67
48
|
|
68
49
|
def log(message)
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Rabbit
|
4
|
+
module Publishing
|
5
|
+
class ChannelsPool
|
6
|
+
class BaseQueue < Queue
|
7
|
+
def initialize(session, max_size)
|
8
|
+
super()
|
9
|
+
|
10
|
+
@session = session
|
11
|
+
@max_size = max_size - 1
|
12
|
+
@ch_size = 0
|
13
|
+
@create_mon = Mutex.new
|
14
|
+
@ch_dec_mon = Mutex.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def pop
|
18
|
+
add_channel if size.zero?
|
19
|
+
|
20
|
+
super
|
21
|
+
end
|
22
|
+
alias_method :deq, :pop
|
23
|
+
|
24
|
+
def push(channel)
|
25
|
+
return @ch_dec_mon.synchronize { @ch_size -= 1 } unless channel&.open?
|
26
|
+
|
27
|
+
super
|
28
|
+
end
|
29
|
+
alias_method :enq, :push
|
30
|
+
|
31
|
+
def add_channel
|
32
|
+
@create_mon.synchronize do
|
33
|
+
return unless @ch_size < @max_size
|
34
|
+
|
35
|
+
push create_channel
|
36
|
+
@ch_size += 1
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
protected
|
41
|
+
|
42
|
+
def create_channel
|
43
|
+
@session.create_channel
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class ConfirmQueue < BaseQueue
|
48
|
+
def create_channel
|
49
|
+
ch = @session.create_channel
|
50
|
+
ch.confirm_select
|
51
|
+
|
52
|
+
ch
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def initialize(session)
|
57
|
+
max_size = session.channel_max
|
58
|
+
|
59
|
+
@pools = {
|
60
|
+
true => ConfirmQueue.new(session, max_size / 2),
|
61
|
+
false => BaseQueue.new(session, max_size / 2),
|
62
|
+
}.freeze
|
63
|
+
end
|
64
|
+
|
65
|
+
def with_channel(confirm)
|
66
|
+
pool = @pools[confirm]
|
67
|
+
ch = pool.deq
|
68
|
+
yield ch
|
69
|
+
ensure
|
70
|
+
pool.enq ch
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -6,13 +6,14 @@ module Rabbit::Publishing
|
|
6
6
|
class Message
|
7
7
|
include Tainbox
|
8
8
|
|
9
|
-
attribute :routing_key,
|
10
|
-
attribute :event,
|
11
|
-
attribute :data,
|
12
|
-
attribute :exchange_name,
|
9
|
+
attribute :routing_key, String
|
10
|
+
attribute :event, String
|
11
|
+
attribute :data, default: {}
|
12
|
+
attribute :exchange_name, default: []
|
13
13
|
attribute :confirm_select, default: true
|
14
|
-
attribute :realtime,
|
14
|
+
attribute :realtime, default: false
|
15
15
|
attribute :headers
|
16
|
+
attribute :message_id
|
16
17
|
|
17
18
|
alias_method :confirm_select?, :confirm_select
|
18
19
|
alias_method :realtime?, :realtime
|
@@ -41,6 +42,7 @@ module Rabbit::Publishing
|
|
41
42
|
content_type: "application/json",
|
42
43
|
app_id: Rabbit.config.app_name,
|
43
44
|
headers: headers,
|
45
|
+
message_id: message_id,
|
44
46
|
}
|
45
47
|
|
46
48
|
[JSON.dump(data), real_exchange_name, routing_key.to_s, options]
|
data/lib/rabbit/receiving/job.rb
CHANGED
@@ -11,14 +11,12 @@ require "rabbit/receiving/malformed_message"
|
|
11
11
|
class Rabbit::Receiving::Job < ActiveJob::Base
|
12
12
|
def perform(message, arguments)
|
13
13
|
Lamian.run do
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
Rabbit.config.exception_notifier.call(error)
|
21
|
-
end
|
14
|
+
message = Rabbit::Receiving::Message.build(message, arguments)
|
15
|
+
handler = Rabbit::Receiving::HandlerResolver.handler_for(message)
|
16
|
+
handler.new(message).call
|
17
|
+
rescue Rabbit::Receiving::MalformedMessage => error
|
18
|
+
raise if Rabbit.config.environment == :test
|
19
|
+
Rabbit.config.exception_notifier.call(error)
|
22
20
|
end
|
23
21
|
end
|
24
22
|
end
|
@@ -10,16 +10,23 @@ module Rabbit::Receiving
|
|
10
10
|
|
11
11
|
attribute :group_id
|
12
12
|
attribute :project_id
|
13
|
+
attribute :message_id
|
13
14
|
attribute :event
|
14
15
|
attribute :data
|
16
|
+
attribute :arguments
|
15
17
|
attribute :original_message
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
def self.build(message, arguments)
|
20
|
+
group_id, project_id = arguments.fetch(:app_id).split(".")
|
21
|
+
|
22
|
+
new(
|
23
|
+
group_id: group_id,
|
24
|
+
project_id: project_id,
|
25
|
+
event: arguments.fetch(:type),
|
26
|
+
data: message,
|
27
|
+
message_id: arguments.fetch(:message_id, nil),
|
28
|
+
arguments: arguments,
|
29
|
+
)
|
23
30
|
end
|
24
31
|
|
25
32
|
def data=(value)
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rabbit"
|
4
|
+
require "rabbit/receiving/message"
|
5
|
+
require "rabbit/receiving/handler_resolver"
|
6
|
+
|
7
|
+
class Rabbit::Receiving::Queue
|
8
|
+
attr_reader :message, :arguments, :handler, :queue_name, :ignore_conversion
|
9
|
+
|
10
|
+
delegate :queue, to: :handler
|
11
|
+
|
12
|
+
def initialize(raw_message, arguments)
|
13
|
+
@message = Rabbit::Receiving::Message.build(raw_message, arguments)
|
14
|
+
@handler = Rabbit::Receiving::HandlerResolver.handler_for(message)
|
15
|
+
@arguments = arguments
|
16
|
+
@queue_name = resolved_queue_name
|
17
|
+
@ignore_conversion = handler.ignore_queue_conversion
|
18
|
+
end
|
19
|
+
|
20
|
+
def name
|
21
|
+
if queue_name
|
22
|
+
calculated_queue_name
|
23
|
+
else
|
24
|
+
Rabbit.default_queue_name(ignore_conversion: ignore_conversion)
|
25
|
+
end
|
26
|
+
rescue
|
27
|
+
Rabbit.default_queue_name
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def resolved_queue_name
|
33
|
+
queue.is_a?(Proc) ? queue.call(message, arguments) : queue
|
34
|
+
end
|
35
|
+
|
36
|
+
def calculated_queue_name
|
37
|
+
Rabbit.queue_name(queue_name, ignore_conversion: ignore_conversion)
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "tainbox"
|
4
|
+
|
5
|
+
require "rabbit"
|
6
|
+
require "rabbit/receiving/queue"
|
7
|
+
|
8
|
+
class Rabbit::Receiving::Receive
|
9
|
+
autoload :Job, "rabbit/receiving/job"
|
10
|
+
|
11
|
+
include Tainbox
|
12
|
+
|
13
|
+
attribute :message
|
14
|
+
attribute :delivery_info
|
15
|
+
attribute :arguments
|
16
|
+
|
17
|
+
def call
|
18
|
+
log!
|
19
|
+
call_hooks(before_hooks)
|
20
|
+
process_message
|
21
|
+
call_hooks(after_hooks)
|
22
|
+
end
|
23
|
+
|
24
|
+
def log!
|
25
|
+
Rabbit.config.receive_logger.debug(
|
26
|
+
[message, delivery_info, arguments].join(" / "),
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
def process_message
|
31
|
+
job_class
|
32
|
+
.set(queue: queue)
|
33
|
+
.perform_later(message, message_info)
|
34
|
+
end
|
35
|
+
|
36
|
+
def call_hooks(hooks)
|
37
|
+
hooks.each do |hook_proc|
|
38
|
+
hook_proc.call(message, message_info)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def before_hooks
|
43
|
+
Rabbit.config.before_receiving_hooks || []
|
44
|
+
end
|
45
|
+
|
46
|
+
def after_hooks
|
47
|
+
Rabbit.config.after_receiving_hooks || []
|
48
|
+
end
|
49
|
+
|
50
|
+
def message_info
|
51
|
+
arguments.merge(
|
52
|
+
delivery_info.slice(:exchange, :routing_key),
|
53
|
+
)
|
54
|
+
end
|
55
|
+
|
56
|
+
def queue
|
57
|
+
Rabbit::Receiving::Queue.new(message, arguments).name
|
58
|
+
end
|
59
|
+
|
60
|
+
def job_class
|
61
|
+
Rabbit.config.receiving_job_class_callable&.call || Rabbit::Receiving::Job
|
62
|
+
end
|
63
|
+
end
|
@@ -3,52 +3,29 @@
|
|
3
3
|
require "sneakers"
|
4
4
|
|
5
5
|
require "rabbit"
|
6
|
-
require "rabbit/receiving/
|
7
|
-
require "rabbit/receiving/malformed_message"
|
8
|
-
require "rabbit/receiving/handler_resolver"
|
6
|
+
require "rabbit/receiving/receive"
|
9
7
|
|
10
|
-
|
11
|
-
|
8
|
+
class Rabbit::Receiving::Worker
|
9
|
+
include Sneakers::Worker
|
12
10
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
def work_with_params(message, delivery_info, arguments)
|
21
|
-
message = message.dup.force_encoding("UTF-8")
|
22
|
-
self.class.logger.debug([message, delivery_info, arguments].join(" / "))
|
23
|
-
job_class.set(queue: queue(message, arguments)).perform_later(message, arguments.to_h)
|
24
|
-
ack!
|
25
|
-
rescue => error
|
26
|
-
raise if Rabbit.config.environment == :test
|
27
|
-
Rabbit.config.exception_notifier.call(error)
|
28
|
-
requeue!
|
29
|
-
end
|
30
|
-
|
31
|
-
private
|
32
|
-
|
33
|
-
def queue(message, arguments)
|
34
|
-
message = Rabbit::Receiving::Message.build(message, arguments)
|
35
|
-
handler = Rabbit::Receiving::HandlerResolver.handler_for(message)
|
36
|
-
queue_name = handler.queue
|
37
|
-
ignore_conversion = handler.ignore_queue_conversion
|
38
|
-
|
39
|
-
return Rabbit.default_queue_name(ignore_conversion: ignore_conversion) unless queue_name
|
40
|
-
|
41
|
-
calculated_queue = begin
|
42
|
-
queue_name.is_a?(Proc) ? queue_name.call(message, arguments) : queue_name
|
43
|
-
end
|
11
|
+
def work_with_params(message, delivery_info, arguments)
|
12
|
+
receive_message(message, delivery_info, arguments)
|
13
|
+
ack!
|
14
|
+
rescue => error
|
15
|
+
handle_error!(error)
|
16
|
+
end
|
44
17
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
18
|
+
def receive_message(message, delivery_info, arguments)
|
19
|
+
Rabbit::Receiving::Receive.new(
|
20
|
+
message: message.dup.force_encoding("UTF-8"),
|
21
|
+
delivery_info: delivery_info,
|
22
|
+
arguments: arguments,
|
23
|
+
).call
|
24
|
+
end
|
49
25
|
|
50
|
-
|
51
|
-
|
52
|
-
|
26
|
+
def handle_error!(error)
|
27
|
+
raise if Rabbit.config.environment == :test
|
28
|
+
Rabbit.config.exception_notifier.call(error)
|
29
|
+
requeue!
|
53
30
|
end
|
54
31
|
end
|
data/lib/rabbit/version.rb
CHANGED
data/rabbit_messaging.gemspec
CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
require "rabbit/version"
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
|
-
spec.required_ruby_version = ">= 2.
|
8
|
+
spec.required_ruby_version = ">= 2.5"
|
9
9
|
|
10
10
|
spec.name = "rabbit_messaging"
|
11
11
|
spec.version = Rabbit::VERSION
|
@@ -22,13 +22,13 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_runtime_dependency "bunny", "~> 2.0"
|
23
23
|
spec.add_runtime_dependency "exception_notification"
|
24
24
|
spec.add_runtime_dependency "lamian"
|
25
|
-
spec.add_runtime_dependency "rails"
|
25
|
+
spec.add_runtime_dependency "rails", ">= 5.2"
|
26
26
|
spec.add_runtime_dependency "sneakers", "~> 2.0"
|
27
27
|
spec.add_runtime_dependency "tainbox"
|
28
28
|
|
29
29
|
spec.add_development_dependency "bundler"
|
30
30
|
spec.add_development_dependency "bundler-audit"
|
31
|
-
spec.add_development_dependency "coveralls"
|
31
|
+
spec.add_development_dependency "coveralls", ">=0.8"
|
32
32
|
spec.add_development_dependency "pry"
|
33
33
|
spec.add_development_dependency "rake"
|
34
34
|
spec.add_development_dependency "rspec"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rabbit_messaging
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Umbrellio
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06
|
11
|
+
date: 2020-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bunny
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '5.2'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '5.2'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: sneakers
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,14 +128,14 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
131
|
+
version: '0.8'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
138
|
+
version: '0.8'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: pry
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -244,6 +244,7 @@ files:
|
|
244
244
|
- lib/rabbit/event_handler.rb
|
245
245
|
- lib/rabbit/extensions/bunny/channel.rb
|
246
246
|
- lib/rabbit/publishing.rb
|
247
|
+
- lib/rabbit/publishing/channels_pool.rb
|
247
248
|
- lib/rabbit/publishing/job.rb
|
248
249
|
- lib/rabbit/publishing/message.rb
|
249
250
|
- lib/rabbit/receiving.rb
|
@@ -251,6 +252,8 @@ files:
|
|
251
252
|
- lib/rabbit/receiving/job.rb
|
252
253
|
- lib/rabbit/receiving/malformed_message.rb
|
253
254
|
- lib/rabbit/receiving/message.rb
|
255
|
+
- lib/rabbit/receiving/queue.rb
|
256
|
+
- lib/rabbit/receiving/receive.rb
|
254
257
|
- lib/rabbit/receiving/worker.rb
|
255
258
|
- lib/rabbit/test_helpers.rb
|
256
259
|
- lib/rabbit/version.rb
|
@@ -259,7 +262,7 @@ files:
|
|
259
262
|
homepage: https://github.com/umbrellio/rabbit_messaging
|
260
263
|
licenses: []
|
261
264
|
metadata: {}
|
262
|
-
post_install_message:
|
265
|
+
post_install_message:
|
263
266
|
rdoc_options: []
|
264
267
|
require_paths:
|
265
268
|
- lib
|
@@ -267,15 +270,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
267
270
|
requirements:
|
268
271
|
- - ">="
|
269
272
|
- !ruby/object:Gem::Version
|
270
|
-
version: 2.
|
273
|
+
version: '2.5'
|
271
274
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
272
275
|
requirements:
|
273
276
|
- - ">="
|
274
277
|
- !ruby/object:Gem::Version
|
275
278
|
version: '0'
|
276
279
|
requirements: []
|
277
|
-
rubygems_version: 3.1
|
278
|
-
signing_key:
|
280
|
+
rubygems_version: 3.2.0.rc.1
|
281
|
+
signing_key:
|
279
282
|
specification_version: 4
|
280
283
|
summary: Rabbit (Rabbit Messaging)
|
281
284
|
test_files: []
|