rabbit_feed 2.3.6 → 2.3.7
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/.gitignore +1 -0
- data/Gemfile +0 -12
- data/README.md +1 -0
- data/example/non_rails_app/Gemfile.lock +1 -1
- data/example/rails_app/Gemfile.lock +1 -1
- data/lib/rabbit_feed/configuration.rb +8 -2
- data/lib/rabbit_feed/event_routing.rb +1 -1
- data/lib/rabbit_feed/producer.rb +1 -1
- data/lib/rabbit_feed/version.rb +1 -1
- data/rabbit_feed.gemspec +6 -1
- data/spec/fixtures/configuration.yml +8 -0
- data/spec/lib/rabbit_feed/configuration_spec.rb +12 -0
- data/spec/lib/rabbit_feed/consumer_connection_spec.rb +12 -0
- data/spec/lib/rabbit_feed/producer_spec.rb +14 -0
- data/spec/spec_helper.rb +1 -0
- metadata +73 -4
- data/Gemfile.lock +0 -131
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46ec22406bf0b402aac611249d2d6d6f73d68f5a
|
4
|
+
data.tar.gz: a818565a86d18854c86462fa98c28c0be45b7913
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ecc5101d86353f8377943623d8b7805f7ef6101b7d90092ed97cb60396a9dcb5573081562c01a36f2bdc3504e83e7515448c8aca60225d9985a64b5de0a1f337
|
7
|
+
data.tar.gz: 1da54c92be195050c2815a3a84a2a3be37aa99e2a00b15ba6edddc24dc4e4594cccf7aba620b0f358fbdc217fa033f00a9e433f9d2d4d2551ecad4ad8b66b96d
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
@@ -2,15 +2,3 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in rabbit_feed.gemspec
|
4
4
|
gemspec
|
5
|
-
|
6
|
-
group :development, :test do
|
7
|
-
gem 'pry-plus'
|
8
|
-
gem 'rake'
|
9
|
-
end
|
10
|
-
|
11
|
-
group :test do
|
12
|
-
gem 'codeclimate-test-reporter'
|
13
|
-
gem 'rspec-its'
|
14
|
-
gem 'rutabaga'
|
15
|
-
gem 'timecop'
|
16
|
-
end
|
data/README.md
CHANGED
@@ -53,6 +53,7 @@ Configuration options that can be specified are:
|
|
53
53
|
| `network_recovery_interval` | Recovery interval (in seconds) periodic network recovery will use |
|
54
54
|
| `auto_delete_queue` | If true, any queues created will auto-delete upon disconnect |
|
55
55
|
| `auto_delete_exchange` | If true, any exchanges created will auto-delete upon disconnect |
|
56
|
+
| `route_prefix_extension` | If set, the routing key/queue of the exchange will become env.`route_prefix_extension`.application.event |
|
56
57
|
|
57
58
|
### Initialisation
|
58
59
|
|
@@ -2,7 +2,8 @@ module RabbitFeed
|
|
2
2
|
class Configuration
|
3
3
|
include ActiveModel::Validations
|
4
4
|
|
5
|
-
attr_reader :host, :hosts, :port, :user, :password, :application, :environment, :exchange, :heartbeat,
|
5
|
+
attr_reader :host, :hosts, :port, :user, :password, :application, :environment, :exchange, :heartbeat,
|
6
|
+
:connect_timeout, :network_recovery_interval, :auto_delete_queue, :auto_delete_exchange
|
6
7
|
validates_presence_of :application, :environment, :exchange
|
7
8
|
|
8
9
|
def initialize options
|
@@ -21,6 +22,7 @@ module RabbitFeed
|
|
21
22
|
@auto_delete_exchange = !!(options[:auto_delete_exchange] || false)
|
22
23
|
@application = options[:application]
|
23
24
|
@environment = options[:environment]
|
25
|
+
@route_prefix_extension = options[:route_prefix_extension]
|
24
26
|
validate!
|
25
27
|
end
|
26
28
|
|
@@ -35,8 +37,12 @@ module RabbitFeed
|
|
35
37
|
new options
|
36
38
|
end
|
37
39
|
|
40
|
+
def route_prefix_extension
|
41
|
+
".#{@route_prefix_extension}" unless @route_prefix_extension.blank?
|
42
|
+
end
|
43
|
+
|
38
44
|
def queue
|
39
|
-
"#{environment}.#{application}"
|
45
|
+
"#{environment}#{route_prefix_extension}.#{application}"
|
40
46
|
end
|
41
47
|
|
42
48
|
def connection_options
|
data/lib/rabbit_feed/producer.rb
CHANGED
@@ -31,7 +31,7 @@ module RabbitFeed
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def routing_key event_name
|
34
|
-
"#{RabbitFeed.environment}.#{RabbitFeed.configuration.application}.#{event_name}"
|
34
|
+
"#{RabbitFeed.environment}#{RabbitFeed.configuration.route_prefix_extension}.#{RabbitFeed.configuration.application}.#{event_name}"
|
35
35
|
end
|
36
36
|
|
37
37
|
def options event_name, timestamp
|
data/lib/rabbit_feed/version.rb
CHANGED
data/rabbit_feed.gemspec
CHANGED
@@ -28,6 +28,11 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_dependency 'pidfile'
|
29
29
|
# Schema definitions and serialization for events
|
30
30
|
spec.add_dependency 'avro', '>= 1.5.4', '< 1.8.0'
|
31
|
-
|
31
|
+
|
32
|
+
spec.add_development_dependency 'codeclimate-test-reporter'
|
33
|
+
spec.add_development_dependency 'rake'
|
32
34
|
spec.add_development_dependency 'rspec', '>=2.14.0', '< 3.3.0'
|
35
|
+
spec.add_development_dependency 'rspec-its'
|
36
|
+
spec.add_development_dependency 'rutabaga'
|
37
|
+
spec.add_development_dependency 'timecop'
|
33
38
|
end
|
@@ -5,6 +5,14 @@ test:
|
|
5
5
|
password: guest
|
6
6
|
application: rabbit_feed
|
7
7
|
auto_delete_queue: true
|
8
|
+
test_route_prefix_extension:
|
9
|
+
host: localhost
|
10
|
+
port: 5672
|
11
|
+
user: guest
|
12
|
+
password: guest
|
13
|
+
application: rabbit_feed
|
14
|
+
auto_delete_queue: true
|
15
|
+
route_prefix_extension: foobar
|
8
16
|
test_config:
|
9
17
|
host: localhost
|
10
18
|
port: 5672
|
@@ -11,6 +11,18 @@ module RabbitFeed
|
|
11
11
|
subject { (described_class.new options).queue }
|
12
12
|
|
13
13
|
it { should eq 'test.rabbit_feed' }
|
14
|
+
|
15
|
+
context 'when a route_prefix_extension is set' do
|
16
|
+
let(:options) do
|
17
|
+
{
|
18
|
+
application: 'rabbit_feed',
|
19
|
+
environment: 'test',
|
20
|
+
route_prefix_extension: 'foobar'
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
it { should eq 'test.foobar.rabbit_feed' }
|
25
|
+
end
|
14
26
|
end
|
15
27
|
|
16
28
|
describe '#connection_options' do
|
@@ -29,6 +29,18 @@ module RabbitFeed
|
|
29
29
|
expect(bunny_channel).to receive(:prefetch).with(1)
|
30
30
|
subject
|
31
31
|
end
|
32
|
+
|
33
|
+
context 'when a route_prefix_extension is set' do
|
34
|
+
before { RabbitFeed.environment = 'test_route_prefix_extension' }
|
35
|
+
after { reset_environment }
|
36
|
+
|
37
|
+
it 'appends the route_prefix_extension to the routing_key' do
|
38
|
+
expect(bunny_queue).to receive(:bind).with('amq.topic',
|
39
|
+
{ routing_key: 'test_route_prefix_extension.foobar.rabbit_feed.test'}
|
40
|
+
)
|
41
|
+
subject
|
42
|
+
end
|
43
|
+
end
|
32
44
|
end
|
33
45
|
|
34
46
|
describe '#consume' do
|
@@ -68,6 +68,20 @@ module RabbitFeed
|
|
68
68
|
subject
|
69
69
|
end
|
70
70
|
end
|
71
|
+
|
72
|
+
context 'when a route_prefix_extension is set' do
|
73
|
+
before { RabbitFeed.environment = 'test_route_prefix_extension' }
|
74
|
+
after { reset_environment }
|
75
|
+
|
76
|
+
it 'appends the route_prefix_extension to the routing_key' do
|
77
|
+
Timecop.freeze do
|
78
|
+
expect(ProducerConnection.instance).to receive(:publish) do |_, options|
|
79
|
+
expect(options[:routing_key]).to eq 'test_route_prefix_extension.foobar.rabbit_feed.event_name'
|
80
|
+
end
|
81
|
+
subject
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
71
85
|
end
|
72
86
|
end
|
73
87
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -41,6 +41,7 @@ def reset_environment
|
|
41
41
|
RabbitFeed.log = RabbitFeed.default_logger
|
42
42
|
RabbitFeed.environment = 'test'
|
43
43
|
RabbitFeed.configuration_file_path = 'spec/fixtures/configuration.yml'
|
44
|
+
RabbitFeed.instance_variable_set('@configuration', nil)
|
44
45
|
RabbitFeed::Consumer.event_routing = nil
|
45
46
|
RabbitFeed::Producer.event_definitions = nil
|
46
47
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rabbit_feed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simply Business
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bunny
|
@@ -104,6 +104,34 @@ dependencies:
|
|
104
104
|
- - "<"
|
105
105
|
- !ruby/object:Gem::Version
|
106
106
|
version: 1.8.0
|
107
|
+
- !ruby/object:Gem::Dependency
|
108
|
+
name: codeclimate-test-reporter
|
109
|
+
requirement: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '0'
|
114
|
+
type: :development
|
115
|
+
prerelease: false
|
116
|
+
version_requirements: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
|
+
- !ruby/object:Gem::Dependency
|
122
|
+
name: rake
|
123
|
+
requirement: !ruby/object:Gem::Requirement
|
124
|
+
requirements:
|
125
|
+
- - ">="
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '0'
|
128
|
+
type: :development
|
129
|
+
prerelease: false
|
130
|
+
version_requirements: !ruby/object:Gem::Requirement
|
131
|
+
requirements:
|
132
|
+
- - ">="
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
107
135
|
- !ruby/object:Gem::Dependency
|
108
136
|
name: rspec
|
109
137
|
requirement: !ruby/object:Gem::Requirement
|
@@ -124,6 +152,48 @@ dependencies:
|
|
124
152
|
- - "<"
|
125
153
|
- !ruby/object:Gem::Version
|
126
154
|
version: 3.3.0
|
155
|
+
- !ruby/object:Gem::Dependency
|
156
|
+
name: rspec-its
|
157
|
+
requirement: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
162
|
+
type: :development
|
163
|
+
prerelease: false
|
164
|
+
version_requirements: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - ">="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0'
|
169
|
+
- !ruby/object:Gem::Dependency
|
170
|
+
name: rutabaga
|
171
|
+
requirement: !ruby/object:Gem::Requirement
|
172
|
+
requirements:
|
173
|
+
- - ">="
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0'
|
176
|
+
type: :development
|
177
|
+
prerelease: false
|
178
|
+
version_requirements: !ruby/object:Gem::Requirement
|
179
|
+
requirements:
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0'
|
183
|
+
- !ruby/object:Gem::Dependency
|
184
|
+
name: timecop
|
185
|
+
requirement: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - ">="
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
190
|
+
type: :development
|
191
|
+
prerelease: false
|
192
|
+
version_requirements: !ruby/object:Gem::Requirement
|
193
|
+
requirements:
|
194
|
+
- - ">="
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: '0'
|
127
197
|
description: A gem providing asynchronous event publish and subscribe capabilities
|
128
198
|
with RabbitMQ.
|
129
199
|
email:
|
@@ -138,7 +208,6 @@ files:
|
|
138
208
|
- Brewfile
|
139
209
|
- DEVELOPING.md
|
140
210
|
- Gemfile
|
141
|
-
- Gemfile.lock
|
142
211
|
- LICENSE.txt
|
143
212
|
- README.md
|
144
213
|
- Rakefile
|
@@ -297,7 +366,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
297
366
|
version: '0'
|
298
367
|
requirements: []
|
299
368
|
rubyforge_project:
|
300
|
-
rubygems_version: 2.4.
|
369
|
+
rubygems_version: 2.4.5.1
|
301
370
|
signing_key:
|
302
371
|
specification_version: 4
|
303
372
|
summary: Enables your Ruby applications to perform centralized event logging with
|
data/Gemfile.lock
DELETED
@@ -1,131 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
rabbit_feed (2.3.6)
|
5
|
-
activemodel (>= 3.2.0, < 5.0.0)
|
6
|
-
activesupport (>= 3.2.0, < 5.0.0)
|
7
|
-
avro (>= 1.5.4, < 1.8.0)
|
8
|
-
bunny (>= 2.0.0, < 2.1.0)
|
9
|
-
pidfile
|
10
|
-
|
11
|
-
GEM
|
12
|
-
remote: https://rubygems.org/
|
13
|
-
specs:
|
14
|
-
activemodel (4.2.5)
|
15
|
-
activesupport (= 4.2.5)
|
16
|
-
builder (~> 3.1)
|
17
|
-
activesupport (4.2.5)
|
18
|
-
i18n (~> 0.7)
|
19
|
-
json (~> 1.7, >= 1.7.7)
|
20
|
-
minitest (~> 5.1)
|
21
|
-
thread_safe (~> 0.3, >= 0.3.4)
|
22
|
-
tzinfo (~> 1.1)
|
23
|
-
amq-protocol (2.0.1)
|
24
|
-
avro (1.7.7)
|
25
|
-
multi_json
|
26
|
-
binding_of_caller (0.7.2)
|
27
|
-
debug_inspector (>= 0.0.1)
|
28
|
-
bond (0.5.1)
|
29
|
-
builder (3.2.2)
|
30
|
-
bunny (2.0.1)
|
31
|
-
amq-protocol (>= 1.9.2)
|
32
|
-
codeclimate-test-reporter (0.4.6)
|
33
|
-
simplecov (>= 0.7.1, < 1.0.0)
|
34
|
-
coderay (1.1.0)
|
35
|
-
columnize (0.9.0)
|
36
|
-
debug_inspector (0.0.2)
|
37
|
-
debugger (1.6.8)
|
38
|
-
columnize (>= 0.3.1)
|
39
|
-
debugger-linecache (~> 1.2.0)
|
40
|
-
debugger-ruby_core_source (~> 1.3.5)
|
41
|
-
debugger-linecache (1.2.0)
|
42
|
-
debugger-ruby_core_source (1.3.8)
|
43
|
-
diff-lcs (1.2.5)
|
44
|
-
docile (1.1.5)
|
45
|
-
gherkin (2.12.2)
|
46
|
-
multi_json (~> 1.3)
|
47
|
-
i18n (0.7.0)
|
48
|
-
interception (0.5)
|
49
|
-
jist (1.5.1)
|
50
|
-
json
|
51
|
-
json (1.8.2)
|
52
|
-
method_source (0.8.2)
|
53
|
-
minitest (5.8.3)
|
54
|
-
multi_json (1.10.1)
|
55
|
-
pidfile (0.3.0)
|
56
|
-
pry (0.10.1)
|
57
|
-
coderay (~> 1.1.0)
|
58
|
-
method_source (~> 0.8.1)
|
59
|
-
slop (~> 3.4)
|
60
|
-
pry-debugger (0.2.3)
|
61
|
-
debugger (~> 1.3)
|
62
|
-
pry (>= 0.9.10, < 0.11.0)
|
63
|
-
pry-doc (0.6.0)
|
64
|
-
pry (~> 0.9)
|
65
|
-
yard (~> 0.8)
|
66
|
-
pry-docmore (0.1.1)
|
67
|
-
pry
|
68
|
-
pry-doc
|
69
|
-
pry-plus (1.0.0)
|
70
|
-
bond
|
71
|
-
jist
|
72
|
-
pry-debugger
|
73
|
-
pry-doc
|
74
|
-
pry-docmore
|
75
|
-
pry-rescue
|
76
|
-
pry-stack_explorer
|
77
|
-
pry-rescue (1.4.1)
|
78
|
-
interception (>= 0.5)
|
79
|
-
pry
|
80
|
-
pry-stack_explorer (0.4.9.2)
|
81
|
-
binding_of_caller (>= 0.7)
|
82
|
-
pry (>= 0.9.11)
|
83
|
-
rake (10.4.2)
|
84
|
-
rspec (3.2.0)
|
85
|
-
rspec-core (~> 3.2.0)
|
86
|
-
rspec-expectations (~> 3.2.0)
|
87
|
-
rspec-mocks (~> 3.2.0)
|
88
|
-
rspec-core (3.2.0)
|
89
|
-
rspec-support (~> 3.2.0)
|
90
|
-
rspec-expectations (3.2.0)
|
91
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
92
|
-
rspec-support (~> 3.2.0)
|
93
|
-
rspec-its (1.2.0)
|
94
|
-
rspec-core (>= 3.0.0)
|
95
|
-
rspec-expectations (>= 3.0.0)
|
96
|
-
rspec-mocks (3.2.0)
|
97
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
98
|
-
rspec-support (~> 3.2.0)
|
99
|
-
rspec-support (3.2.1)
|
100
|
-
rutabaga (0.1.1)
|
101
|
-
turnip (>= 1.1.0, < 2.0)
|
102
|
-
simplecov (0.9.2)
|
103
|
-
docile (~> 1.1.0)
|
104
|
-
multi_json (~> 1.0)
|
105
|
-
simplecov-html (~> 0.9.0)
|
106
|
-
simplecov-html (0.9.0)
|
107
|
-
slop (3.6.0)
|
108
|
-
thread_safe (0.3.5)
|
109
|
-
timecop (0.7.3)
|
110
|
-
turnip (1.2.4)
|
111
|
-
gherkin (>= 2.5)
|
112
|
-
rspec (>= 2.14.0, < 4.0)
|
113
|
-
tzinfo (1.2.2)
|
114
|
-
thread_safe (~> 0.1)
|
115
|
-
yard (0.8.7.6)
|
116
|
-
|
117
|
-
PLATFORMS
|
118
|
-
ruby
|
119
|
-
|
120
|
-
DEPENDENCIES
|
121
|
-
codeclimate-test-reporter
|
122
|
-
pry-plus
|
123
|
-
rabbit_feed!
|
124
|
-
rake
|
125
|
-
rspec (>= 2.14.0, < 3.3.0)
|
126
|
-
rspec-its
|
127
|
-
rutabaga
|
128
|
-
timecop
|
129
|
-
|
130
|
-
BUNDLED WITH
|
131
|
-
1.10.5
|