gorg_service 5.1.0 → 5.2.0
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/lib/gorg_service.rb +1 -1
- data/lib/gorg_service/configuration.rb +3 -1
- data/lib/gorg_service/consumer/message_handler/base.rb +4 -0
- data/lib/gorg_service/consumer/message_router.rb +4 -0
- data/lib/gorg_service/message.rb +1 -1
- data/lib/gorg_service/rspec/bunny_cleaner.rb +72 -0
- data/lib/gorg_service/rspec/log_message_handler.rb +30 -0
- data/lib/gorg_service/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2085fe592d8c8996fba362f5ab27ed073fc286d7
|
4
|
+
data.tar.gz: a7b351d69fbddb9bfea3d4ec5e680eb938bdaeea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae04c871818975d33b1eff5391ce1b677c71b04d2977dbaa4bb4b31fda8d9d53da4e4c39dbfd560f406cecfe48bc62d7700ca2df91627639ff4b09d4db10778a
|
7
|
+
data.tar.gz: f97f7c4cb4d13b0134044eb64ee7f1134e2a0f711b034a643ba7b83b8ec43966d8ff2e9d46f32f7b5ed9885812ba60c67a76e1edd763022b15c4073c52f538f3
|
data/lib/gorg_service.rb
CHANGED
@@ -12,7 +12,7 @@ class GorgService
|
|
12
12
|
|
13
13
|
#Connection shared across Consumers and Producers (thread safe)
|
14
14
|
def connection
|
15
|
-
@bunny_session||=
|
15
|
+
@bunny_session||=GorgService.configuration.rabbitmq_client_class.new(
|
16
16
|
:hostname => GorgService.configuration.rabbitmq_host,
|
17
17
|
:port => GorgService.configuration.rabbitmq_port,
|
18
18
|
:user => GorgService.configuration.rabbitmq_user,
|
@@ -17,7 +17,8 @@ class GorgService
|
|
17
17
|
# Hold configuration of GorgService in instance variables
|
18
18
|
class Configuration
|
19
19
|
|
20
|
-
attr_accessor :
|
20
|
+
attr_accessor :rabbitmq_client_class,
|
21
|
+
:application_name,
|
21
22
|
:application_id,
|
22
23
|
:rabbitmq_host,
|
23
24
|
:rabbitmq_port,
|
@@ -34,6 +35,7 @@ class GorgService
|
|
34
35
|
|
35
36
|
|
36
37
|
def initialize
|
38
|
+
@rabbitmq_client_class = Bunny
|
37
39
|
@logger = Logger.new(STDOUT)
|
38
40
|
@application_name = "GorgService"
|
39
41
|
@application_id = "gs"
|
data/lib/gorg_service/message.rb
CHANGED
@@ -144,7 +144,7 @@ class GorgService
|
|
144
144
|
routing_key: delivery_info[:routing_key],
|
145
145
|
id: properties[:message_id],
|
146
146
|
reply_to: properties[:reply_to],
|
147
|
-
correlation_id: properties[:
|
147
|
+
correlation_id: properties[:correlation_id],
|
148
148
|
sender_id: properties[:app_id],
|
149
149
|
content_type: properties[:content_type],
|
150
150
|
content_encoding: properties[:content_encoding],
|
@@ -0,0 +1,72 @@
|
|
1
|
+
class BunnyCleaner
|
2
|
+
|
3
|
+
class Session
|
4
|
+
def initialize(*args, &block)
|
5
|
+
@target=Bunny::Session.new(*args,&block)
|
6
|
+
end
|
7
|
+
|
8
|
+
def method_missing(method, *args, &block)
|
9
|
+
@target.send(method, *args, &block)
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.method_missing(method, *args, &block)
|
13
|
+
Bunny::Session.send(method, *args, &block)
|
14
|
+
end
|
15
|
+
|
16
|
+
def create_channel(*args,&block)
|
17
|
+
ch=@target.create_channel(*args,&block)
|
18
|
+
BunnyCleaner.registered_channels<<ch
|
19
|
+
ch
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
def initialize(*args, &block)
|
25
|
+
@target=Session.new(*args, &block)
|
26
|
+
end
|
27
|
+
|
28
|
+
def method_missing(method, *args, &block)
|
29
|
+
@target.send(method, *args, &block)
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.method_missing(method, *args, &block)
|
33
|
+
Bunny.send(method, *args, &block)
|
34
|
+
end
|
35
|
+
|
36
|
+
class << self
|
37
|
+
def registered_channels
|
38
|
+
@registered_channels||=[]
|
39
|
+
end
|
40
|
+
|
41
|
+
def cleaning(&block)
|
42
|
+
begin
|
43
|
+
init_cleaning
|
44
|
+
block.call
|
45
|
+
ensure
|
46
|
+
clean
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
def clean
|
52
|
+
connections=[]
|
53
|
+
@registered_channels.each do |ch|
|
54
|
+
c=ch.connection
|
55
|
+
connections<<c
|
56
|
+
c.start unless c.status == :open
|
57
|
+
|
58
|
+
c.with_channel do |chan|
|
59
|
+
ch.queues.keys.each{|q| c.queue_exists?(q)&&chan.queue_delete(q) }
|
60
|
+
ch.exchanges.keys.each{|ex| c.exchange_exists?(ex)&&chan.exchange_delete(ex) }
|
61
|
+
end
|
62
|
+
end
|
63
|
+
connections.uniq.each{|c|c.stop}
|
64
|
+
end
|
65
|
+
|
66
|
+
def init_cleaning
|
67
|
+
registered_channels.clear
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
class LogMessageHandler < GorgService::Consumer::MessageHandler::Base
|
2
|
+
def initialize(msg)
|
3
|
+
GorgService.logger.debug "Message received in LogMessageHandler"
|
4
|
+
self.class.messages<<msg
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.messages
|
8
|
+
@@messages||=[]
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.has_received_error?(type)
|
12
|
+
messages.any?{|m| m.errors.any?{|x| x.type==type}}
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.has_received_hardfail?
|
16
|
+
self.has_received_error?("harderror")
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.has_received_hardfail?
|
20
|
+
self.has_received_error?("softerror")
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.has_received_a_message_with_routing_key?(routing_key)
|
24
|
+
messages.any?{|m| m.routing_key==routing_key}
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.reset
|
28
|
+
@@messages=nil
|
29
|
+
end
|
30
|
+
end
|
data/lib/gorg_service/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gorg_service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre Narbonne
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bunny
|
@@ -178,6 +178,8 @@ files:
|
|
178
178
|
- lib/gorg_service/message/json_schema.rb
|
179
179
|
- lib/gorg_service/producer.rb
|
180
180
|
- lib/gorg_service/rabbitmq_env_builder.rb
|
181
|
+
- lib/gorg_service/rspec/bunny_cleaner.rb
|
182
|
+
- lib/gorg_service/rspec/log_message_handler.rb
|
181
183
|
- lib/gorg_service/version.rb
|
182
184
|
homepage: https://github.com/Zooip/gorg_service
|
183
185
|
licenses:
|