fastly_nsq 0.1.4 → 0.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/.gitignore +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +1 -1
- data/Gemfile +0 -2
- data/README.md +56 -14
- data/Rakefile +4 -9
- data/examples/Rakefile +36 -0
- data/fastly_nsq.gemspec +1 -2
- data/lib/fastly_nsq/message_queue/consumer.rb +5 -1
- data/lib/fastly_nsq/message_queue/listener.rb +27 -4
- data/lib/fastly_nsq/message_queue/producer.rb +5 -1
- data/lib/fastly_nsq/rake_task.rb +40 -0
- data/lib/fastly_nsq/sample_message_processor.rb +16 -12
- data/lib/fastly_nsq/version.rb +1 -1
- data/{test/lib/fastly_nsq/fake_message_queue_test.rb → spec/lib/fastly_nsq/fake_message_queue_spec.rb} +12 -12
- data/{test/lib/fastly_nsq/fastly_nsq_test.rb → spec/lib/fastly_nsq/fastly_nsq_spec.rb} +3 -3
- data/spec/lib/fastly_nsq/message_queue/consumer_spec.rb +93 -0
- data/spec/lib/fastly_nsq/message_queue/listener_spec.rb +78 -0
- data/spec/lib/fastly_nsq/message_queue/producer_spec.rb +84 -0
- data/{test/lib/fastly_nsq/message_queue/strategy.rb → spec/lib/fastly_nsq/message_queue/strategy_spec.rb} +5 -7
- data/{test/lib/fastly_nsq/sample_message_processor_test.rb → spec/lib/fastly_nsq/sample_message_processor_spec.rb} +8 -22
- data/spec/spec_helper.rb +44 -0
- data/spec/support/env_helpers.rb +19 -0
- data/test/lib/fastly_nsq/rake_task_test.rb +68 -0
- metadata +17 -33
- data/test/lib/fastly_nsq/message_queue/consumer_test.rb +0 -59
- data/test/lib/fastly_nsq/message_queue/listener_test.rb +0 -45
- data/test/lib/fastly_nsq/message_queue/producer_test.rb +0 -54
- data/test/test_helper.rb +0 -49
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastly_nsq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tommy O'Neil
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-02-
|
12
|
+
date: 2016-02-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: awesome_print
|
@@ -53,20 +53,6 @@ dependencies:
|
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0.4'
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: minitest
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - "~>"
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '5.8'
|
63
|
-
type: :development
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '5.8'
|
70
56
|
- !ruby/object:Gem::Dependency
|
71
57
|
name: pry-byebug
|
72
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -110,7 +96,7 @@ dependencies:
|
|
110
96
|
- !ruby/object:Gem::Version
|
111
97
|
version: '4.2'
|
112
98
|
- !ruby/object:Gem::Dependency
|
113
|
-
name: rspec
|
99
|
+
name: rspec
|
114
100
|
requirement: !ruby/object:Gem::Requirement
|
115
101
|
requirements:
|
116
102
|
- - "~>"
|
@@ -166,6 +152,7 @@ files:
|
|
166
152
|
- ".document"
|
167
153
|
- ".gitignore"
|
168
154
|
- ".rdoc_options"
|
155
|
+
- ".ruby-version"
|
169
156
|
- ".travis.yml"
|
170
157
|
- ChangeLog.md
|
171
158
|
- Gemfile
|
@@ -174,6 +161,7 @@ files:
|
|
174
161
|
- Rakefile
|
175
162
|
- env_configuration_for_local_gem_tests.yml
|
176
163
|
- examples/.sample.env
|
164
|
+
- examples/Rakefile
|
177
165
|
- fastly_nsq.gemspec
|
178
166
|
- lib/fastly_nsq.rb
|
179
167
|
- lib/fastly_nsq/fake_message_queue.rb
|
@@ -182,16 +170,19 @@ files:
|
|
182
170
|
- lib/fastly_nsq/message_queue/listener.rb
|
183
171
|
- lib/fastly_nsq/message_queue/producer.rb
|
184
172
|
- lib/fastly_nsq/message_queue/strategy.rb
|
173
|
+
- lib/fastly_nsq/rake_task.rb
|
185
174
|
- lib/fastly_nsq/sample_message_processor.rb
|
186
175
|
- lib/fastly_nsq/version.rb
|
187
|
-
-
|
188
|
-
-
|
189
|
-
-
|
190
|
-
-
|
191
|
-
-
|
192
|
-
-
|
193
|
-
-
|
194
|
-
-
|
176
|
+
- spec/lib/fastly_nsq/fake_message_queue_spec.rb
|
177
|
+
- spec/lib/fastly_nsq/fastly_nsq_spec.rb
|
178
|
+
- spec/lib/fastly_nsq/message_queue/consumer_spec.rb
|
179
|
+
- spec/lib/fastly_nsq/message_queue/listener_spec.rb
|
180
|
+
- spec/lib/fastly_nsq/message_queue/producer_spec.rb
|
181
|
+
- spec/lib/fastly_nsq/message_queue/strategy_spec.rb
|
182
|
+
- spec/lib/fastly_nsq/sample_message_processor_spec.rb
|
183
|
+
- spec/spec_helper.rb
|
184
|
+
- spec/support/env_helpers.rb
|
185
|
+
- test/lib/fastly_nsq/rake_task_test.rb
|
195
186
|
homepage: https://github.com/fastly/fastly-nsq
|
196
187
|
licenses:
|
197
188
|
- MIT
|
@@ -217,11 +208,4 @@ signing_key:
|
|
217
208
|
specification_version: 4
|
218
209
|
summary: Fastly NSQ Adapter
|
219
210
|
test_files:
|
220
|
-
- test/lib/fastly_nsq/
|
221
|
-
- test/lib/fastly_nsq/fastly_nsq_test.rb
|
222
|
-
- test/lib/fastly_nsq/message_queue/consumer_test.rb
|
223
|
-
- test/lib/fastly_nsq/message_queue/listener_test.rb
|
224
|
-
- test/lib/fastly_nsq/message_queue/producer_test.rb
|
225
|
-
- test/lib/fastly_nsq/message_queue/strategy.rb
|
226
|
-
- test/lib/fastly_nsq/sample_message_processor_test.rb
|
227
|
-
- test/test_helper.rb
|
211
|
+
- test/lib/fastly_nsq/rake_task_test.rb
|
@@ -1,59 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe MessageQueue::Consumer do
|
4
|
-
describe '#connection' do
|
5
|
-
describe 'when using the real queue' do
|
6
|
-
it 'returns an instance of the queue consumer' do
|
7
|
-
MessageQueue::FALSY_VALUES.each do |no|
|
8
|
-
allow(ENV).to receive(:[]).with('FAKE_QUEUE').and_return(no)
|
9
|
-
allow(Nsq::Consumer).to receive(:new)
|
10
|
-
topic = 'death_star'
|
11
|
-
channel = 'star_killer_base'
|
12
|
-
|
13
|
-
MessageQueue::Consumer.new(topic: topic, channel: channel).connection
|
14
|
-
|
15
|
-
expect(Nsq::Consumer).to have_received(:new).
|
16
|
-
with(
|
17
|
-
nsqlookupd: ENV.fetch('NSQLOOKUPD_HTTP_ADDRESS'),
|
18
|
-
topic: topic,
|
19
|
-
channel: channel,
|
20
|
-
).at_least(:once)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe 'when using the fake queue' do
|
27
|
-
it 'returns an instance of the queue consumer' do
|
28
|
-
MessageQueue::TRUTHY_VALUES.each do |yes|
|
29
|
-
allow(ENV).to receive(:[]).with('FAKE_QUEUE').and_return(yes)
|
30
|
-
allow(FakeMessageQueue::Consumer).to receive(:new)
|
31
|
-
topic = 'death_star'
|
32
|
-
channel = 'star_killer_base'
|
33
|
-
|
34
|
-
MessageQueue::Consumer.new(topic: topic, channel: channel).connection
|
35
|
-
|
36
|
-
expect(FakeMessageQueue::Consumer).to have_received(:new).
|
37
|
-
with(
|
38
|
-
nsqlookupd: ENV.fetch('NSQLOOKUPD_HTTP_ADDRESS'),
|
39
|
-
topic: topic,
|
40
|
-
channel: channel,
|
41
|
-
).at_least(:once)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
describe 'when the ENV is set incorrectly' do
|
47
|
-
it 'raises with a helpful error' do
|
48
|
-
allow(ENV).to receive(:[]).with('FAKE_QUEUE').and_return('taco')
|
49
|
-
topic = 'death_star'
|
50
|
-
channel = 'star_killer_base'
|
51
|
-
|
52
|
-
consumer = MessageQueue::Consumer.new(topic: topic, channel: channel)
|
53
|
-
|
54
|
-
assert_raises(InvalidParameterError) do
|
55
|
-
consumer.connection
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe MessageQueue::Listener do
|
4
|
-
describe '#process_next_message' do
|
5
|
-
it 'pass the topic and channel to the consumer' do
|
6
|
-
allow(SampleMessageProcessor).to receive_message_chain(:new, :go)
|
7
|
-
allow(MessageQueue::Consumer).to receive_message_chain(
|
8
|
-
:new,
|
9
|
-
:connection,
|
10
|
-
:pop,
|
11
|
-
)
|
12
|
-
topic = 'minitest'
|
13
|
-
channel = 'northstar'
|
14
|
-
|
15
|
-
MessageQueue::Listener.new(topic: topic, channel: channel).
|
16
|
-
process_next_message
|
17
|
-
|
18
|
-
expect(MessageQueue::Consumer).to have_received(:new).
|
19
|
-
with(topic: topic, channel: channel)
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'processes the message' do
|
23
|
-
process_message = double(go: nil)
|
24
|
-
allow(MessageProcessor).to receive(:new).and_return(process_message)
|
25
|
-
message = double
|
26
|
-
allow(MessageQueue::Consumer).to receive_message_chain(
|
27
|
-
:new,
|
28
|
-
:connection,
|
29
|
-
pop: message
|
30
|
-
)
|
31
|
-
topic = 'minitest'
|
32
|
-
channel = 'northstar'
|
33
|
-
|
34
|
-
MessageQueue::Listener.new(topic: topic, channel: channel).
|
35
|
-
process_next_message
|
36
|
-
|
37
|
-
expect(MessageProcessor).to have_received(:new).with(message)
|
38
|
-
expect(process_message).to have_received(:go)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe '#go' do
|
43
|
-
# Infinite loops are untestable
|
44
|
-
end
|
45
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe MessageQueue::Producer do
|
4
|
-
describe '#connection' do
|
5
|
-
describe 'when using the real queue' do
|
6
|
-
it 'returns an instance of the queue producer' do
|
7
|
-
MessageQueue::FALSY_VALUES.each do |no|
|
8
|
-
allow(ENV).to receive(:[]).with('FAKE_QUEUE').and_return(no)
|
9
|
-
allow(Nsq::Producer).to receive(:new)
|
10
|
-
topic = 'death_star'
|
11
|
-
|
12
|
-
MessageQueue::Producer.new(topic: topic).connection
|
13
|
-
|
14
|
-
expect(Nsq::Producer).to have_received(:new).
|
15
|
-
with(
|
16
|
-
nsqd: ENV.fetch('NSQD_TCP_ADDRESS'),
|
17
|
-
topic: topic,
|
18
|
-
).at_least(:once)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
describe 'when using the fake queue' do
|
25
|
-
it 'returns an instance of the queue producer' do
|
26
|
-
MessageQueue::TRUTHY_VALUES.each do |yes|
|
27
|
-
allow(ENV).to receive(:[]).with('FAKE_QUEUE').and_return(yes)
|
28
|
-
allow(FakeMessageQueue::Producer).to receive(:new)
|
29
|
-
topic = 'death_star'
|
30
|
-
|
31
|
-
MessageQueue::Producer.new(topic: topic).connection
|
32
|
-
|
33
|
-
expect(FakeMessageQueue::Producer).to have_received(:new).
|
34
|
-
with(
|
35
|
-
nsqd: ENV.fetch('NSQD_TCP_ADDRESS'),
|
36
|
-
topic: topic,
|
37
|
-
).at_least(:once)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe 'when the ENV is set incorrectly' do
|
43
|
-
it 'raises with a helpful error' do
|
44
|
-
allow(ENV).to receive(:[]).with('FAKE_QUEUE').and_return('taco')
|
45
|
-
topic = 'death_star'
|
46
|
-
|
47
|
-
producer = MessageQueue::Producer.new(topic: topic)
|
48
|
-
|
49
|
-
assert_raises(InvalidParameterError) do
|
50
|
-
producer.connection
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
|
3
|
-
begin
|
4
|
-
require 'bundler/setup'
|
5
|
-
rescue LoadError => error
|
6
|
-
abort error.message
|
7
|
-
end
|
8
|
-
|
9
|
-
require 'fastly_nsq'
|
10
|
-
|
11
|
-
require 'minitest/autorun'
|
12
|
-
require 'awesome_print'
|
13
|
-
require 'pry-byebug'
|
14
|
-
require_relative '../lib/fastly_nsq/sample_message_processor'
|
15
|
-
|
16
|
-
MessageProcessor = SampleMessageProcessor
|
17
|
-
|
18
|
-
MiniTest::Spec.before do
|
19
|
-
load_sample_environment_variables
|
20
|
-
end
|
21
|
-
|
22
|
-
def load_sample_environment_variables
|
23
|
-
env_file = File.open('env_configuration_for_local_gem_tests.yml')
|
24
|
-
|
25
|
-
YAML.load(env_file).each do |key, value|
|
26
|
-
ENV[key.to_s] = value
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
require 'rspec/mocks'
|
31
|
-
module MinitestRSpecMocksIntegration
|
32
|
-
include ::RSpec::Mocks::ExampleMethods
|
33
|
-
|
34
|
-
def before_setup
|
35
|
-
::RSpec::Mocks.setup
|
36
|
-
super
|
37
|
-
end
|
38
|
-
|
39
|
-
def after_teardown
|
40
|
-
super
|
41
|
-
::RSpec::Mocks.verify
|
42
|
-
ensure
|
43
|
-
::RSpec::Mocks.teardown
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
class MiniTest::Spec
|
48
|
-
include MinitestRSpecMocksIntegration
|
49
|
-
end
|