gorg_service 5.1.0 → 5.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|