fastly_nsq 1.17.0 → 1.17.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.git-blame-ignore-revs +6 -0
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +4 -2
  5. data/ChangeLog.md +8 -1
  6. data/Gemfile +8 -8
  7. data/README.md +1 -1
  8. data/Rakefile +10 -11
  9. data/fastly_nsq.gemspec +26 -26
  10. data/lib/fastly_nsq/cli.rb +43 -50
  11. data/lib/fastly_nsq/consumer.rb +6 -6
  12. data/lib/fastly_nsq/feeder.rb +5 -7
  13. data/lib/fastly_nsq/http/nsqd.rb +28 -28
  14. data/lib/fastly_nsq/http/nsqlookupd.rb +11 -11
  15. data/lib/fastly_nsq/http.rb +4 -4
  16. data/lib/fastly_nsq/launcher.rb +16 -16
  17. data/lib/fastly_nsq/listener.rb +16 -16
  18. data/lib/fastly_nsq/manager.rb +13 -12
  19. data/lib/fastly_nsq/message.rb +4 -4
  20. data/lib/fastly_nsq/messenger.rb +7 -7
  21. data/lib/fastly_nsq/new_relic.rb +8 -8
  22. data/lib/fastly_nsq/priority_queue.rb +2 -2
  23. data/lib/fastly_nsq/priority_thread_pool.rb +3 -3
  24. data/lib/fastly_nsq/producer.rb +7 -7
  25. data/lib/fastly_nsq/safe_thread.rb +1 -1
  26. data/lib/fastly_nsq/testing.rb +4 -3
  27. data/lib/fastly_nsq/tls_options.rb +6 -6
  28. data/lib/fastly_nsq/version.rb +1 -1
  29. data/lib/fastly_nsq.rb +27 -29
  30. data/spec/cli_spec.rb +2 -2
  31. data/spec/consumer_spec.rb +12 -12
  32. data/spec/fastly_nsq_spec.rb +31 -31
  33. data/spec/feeder_spec.rb +4 -4
  34. data/spec/http/nsqd_spec.rb +23 -23
  35. data/spec/http/nsqlookupd_spec.rb +19 -19
  36. data/spec/http_spec.rb +22 -22
  37. data/spec/integration_spec.rb +10 -10
  38. data/spec/launcher_spec.rb +21 -21
  39. data/spec/listener_spec.rb +50 -50
  40. data/spec/manager_spec.rb +27 -27
  41. data/spec/matchers/delegate.rb +4 -4
  42. data/spec/message_spec.rb +19 -19
  43. data/spec/messenger_spec.rb +63 -64
  44. data/spec/new_relic.rb +27 -27
  45. data/spec/priority_thread_pool_spec.rb +2 -2
  46. data/spec/producer_spec.rb +30 -30
  47. data/spec/spec_helper.rb +12 -12
  48. data/spec/support/http.rb +2 -2
  49. data/spec/support/webmock.rb +1 -1
  50. data/spec/testing_spec.rb +12 -12
  51. data/spec/tls_options_spec.rb +47 -47
  52. metadata +7 -8
  53. data/.rubocop.yml +0 -68
data/spec/cli_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helper'
4
- require 'fastly_nsq/cli'
3
+ require "spec_helper"
4
+ require "fastly_nsq/cli"
5
5
 
6
6
  RSpec.describe FastlyNsq::CLI do
7
7
  end
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helper'
3
+ require "spec_helper"
4
4
 
5
5
  RSpec.describe FastlyNsq::Consumer do
6
- let!(:topic) { 'fnsq' }
7
- let!(:channel) { 'fnsq' }
8
- let!(:queue) { nil }
6
+ let!(:topic) { "fnsq" }
7
+ let!(:channel) { "fnsq" }
8
+ let!(:queue) { nil }
9
9
 
10
10
  subject { described_class.new(topic: topic, channel: channel, queue: queue) }
11
11
 
@@ -16,15 +16,15 @@ RSpec.describe FastlyNsq::Consumer do
16
16
 
17
17
  it { should be_connected }
18
18
 
19
- it 'should terminate' do
19
+ it "should terminate" do
20
20
  expect { subject.terminate }.to change(subject, :connected?).to(false)
21
21
  end
22
22
 
23
- describe 'with a specified queue' do
23
+ describe "with a specified queue" do
24
24
  let!(:queue) { Queue.new }
25
25
 
26
- it 'passes #queue to Nsq::Consumer' do
27
- message = 'foo'
26
+ it "passes #queue to Nsq::Consumer" do
27
+ message = "foo"
28
28
 
29
29
  FastlyNsq::Messenger.deliver(message: message, topic: topic)
30
30
 
@@ -41,16 +41,16 @@ RSpec.describe FastlyNsq::Consumer do
41
41
  it { should delegate(:pop).to(:connection) }
42
42
  it { should delegate(:pop_without_blocking).to(:connection) }
43
43
 
44
- describe 'with a message' do
45
- let(:message) { 'foo' }
44
+ describe "with a message" do
45
+ let(:message) { "foo" }
46
46
 
47
47
  before { FastlyNsq::Messenger.deliver(message: message, topic: topic) }
48
48
 
49
- it 'should not be empty' do
49
+ it "should not be empty" do
50
50
  expect { subject }.to eventually(be_empty).within(15)
51
51
  end
52
52
 
53
- describe 'that has finished' do
53
+ describe "that has finished" do
54
54
  before { subject.pop.finish }
55
55
 
56
56
  it { should be_empty }
@@ -1,89 +1,89 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helper'
3
+ require "spec_helper"
4
4
 
5
5
  RSpec.describe FastlyNsq do
6
- describe '#configure' do
6
+ describe "#configure" do
7
7
  specify { expect { |b| described_class.configure(&b) }.to yield_with_args(described_class) }
8
8
  end
9
9
 
10
- describe '#listen' do
10
+ describe "#listen" do
11
11
  let!(:default_channel) { subject.channel }
12
- let!(:topic) { 'fnsq' }
12
+ let!(:topic) { "fnsq" }
13
13
 
14
- before { subject.channel = 'fnsq' }
14
+ before { subject.channel = "fnsq" }
15
15
  after { subject.channel = default_channel }
16
16
 
17
- it 'creates a listener' do
17
+ it "creates a listener" do
18
18
  expect { subject.listen topic, ->(*) {} }.to change { subject.manager.topics }.to([topic])
19
19
  end
20
20
 
21
- it 'creates a listener with a specific priority' do
21
+ it "creates a listener with a specific priority" do
22
22
  listener = subject.listen topic, ->(*) {}, priority: 10
23
23
  expect(listener.priority).to eq(10)
24
24
  end
25
25
  end
26
26
 
27
- describe '#channel=' do
27
+ describe "#channel=" do
28
28
  let!(:default_channel) { subject.channel }
29
29
  after { subject.channel = default_channel }
30
30
 
31
- it 'allows the channel to be set and retrieved' do
31
+ it "allows the channel to be set and retrieved" do
32
32
  expect(subject.channel).to be_nil
33
- subject.channel = 'foo'
34
- expect(subject.channel).to eq('foo')
33
+ subject.channel = "foo"
34
+ expect(subject.channel).to eq("foo")
35
35
  end
36
36
  end
37
37
 
38
- describe '#logger' do
38
+ describe "#logger" do
39
39
  let!(:default_logger) { subject.logger }
40
40
  after { subject.logger = default_logger }
41
41
 
42
- it 'returns the set logger' do
42
+ it "returns the set logger" do
43
43
  logger = Logger.new(nil)
44
44
  subject.logger = logger
45
45
 
46
46
  expect(subject.logger).to eq logger
47
47
  end
48
48
 
49
- it 'sets the default logger if none is set' do
49
+ it "sets the default logger if none is set" do
50
50
  subject.instance_variable_set(:@logger, nil)
51
51
  expect(subject.instance_variable_get(:@logger)).to be nil
52
52
  logger = subject.logger
53
53
 
54
54
  expect(logger).to be_instance_of(Logger)
55
- expect(logger.instance_variable_get(:@logdev).dev).to eq(STDERR)
55
+ expect(logger.instance_variable_get(:@logdev).dev).to eq($stderr)
56
56
  expect(logger).to eq(Nsq.logger)
57
57
  end
58
58
  end
59
59
 
60
- describe '#logger=' do
60
+ describe "#logger=" do
61
61
  let!(:default_logger) { subject.logger }
62
62
  after { subject.logger = default_logger }
63
63
 
64
- it 'allows the logger to be set and retrieved' do
65
- logger = Logger.new(STDOUT)
64
+ it "allows the logger to be set and retrieved" do
65
+ logger = Logger.new($stdout)
66
66
  subject.logger = logger
67
67
 
68
68
  expect(subject.logger).to eq logger
69
69
  end
70
70
 
71
- it 'sets Nsq.logger' do
72
- logger = Logger.new(STDOUT)
71
+ it "sets Nsq.logger" do
72
+ logger = Logger.new($stdout)
73
73
  subject.logger = logger
74
74
 
75
75
  expect(Nsq.logger).to eq logger
76
76
  end
77
77
  end
78
78
 
79
- describe '#manager' do
80
- it 'represents the active default manager' do
79
+ describe "#manager" do
80
+ it "represents the active default manager" do
81
81
  expect(subject.manager).not_to be_stopped
82
82
  end
83
83
  end
84
84
 
85
- describe '#manager=' do
86
- it 'transfers to specified manager' do
85
+ describe "#manager=" do
86
+ it "transfers to specified manager" do
87
87
  old_manager = subject.manager
88
88
  new_manager = FastlyNsq::Manager.new
89
89
 
@@ -93,17 +93,17 @@ RSpec.describe FastlyNsq do
93
93
  end
94
94
  end
95
95
 
96
- describe '#lookupd_http_addresses' do
97
- it 'retreives NSQLOOKUPD_HTTP_ADDRESS' do
98
- expect(subject.lookupd_http_addresses).to eq(ENV['NSQLOOKUPD_HTTP_ADDRESS'].split(','))
96
+ describe "#lookupd_http_addresses" do
97
+ it "retreives NSQLOOKUPD_HTTP_ADDRESS" do
98
+ expect(subject.lookupd_http_addresses).to eq(ENV["NSQLOOKUPD_HTTP_ADDRESS"].split(","))
99
99
  end
100
100
  end
101
101
 
102
- describe '#on' do
102
+ describe "#on" do
103
103
  before { FastlyNsq.events.each { |(_, v)| v.clear } }
104
- after { FastlyNsq.events.each { |(_, v)| v.clear } }
104
+ after { FastlyNsq.events.each { |(_, v)| v.clear } }
105
105
 
106
- it 'registers callbacks for events' do
106
+ it "registers callbacks for events" do
107
107
  %i[startup shutdown heartbeat].each do |event|
108
108
  block = -> {}
109
109
  FastlyNsq.on(event, &block)
@@ -111,7 +111,7 @@ RSpec.describe FastlyNsq do
111
111
  end
112
112
  end
113
113
 
114
- it 'limits callback registration to valid events' do
114
+ it "limits callback registration to valid events" do
115
115
  expect { FastlyNsq.on(:foo, &-> {}) }.to raise_error(ArgumentError, /Invalid event name/)
116
116
  end
117
117
  end
data/spec/feeder_spec.rb CHANGED
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helper'
3
+ require "spec_helper"
4
4
 
5
5
  RSpec.describe FastlyNsq::Feeder do
6
- describe '#push' do
7
- it 'sends message to processor with the specified priority' do
6
+ describe "#push" do
7
+ it "sends message to processor with the specified priority" do
8
8
  messages = []
9
9
  processor = ->(m) { messages << m }
10
10
  priority = 5
11
- message = 'foo'
11
+ message = "foo"
12
12
 
13
13
  feeder = described_class.new(processor, priority)
14
14
 
@@ -1,77 +1,77 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helper'
4
- require 'fastly_nsq/http/nsqd'
3
+ require "spec_helper"
4
+ require "fastly_nsq/http/nsqd"
5
5
 
6
6
  RSpec.describe FastlyNsq::Http::Nsqd, :webmock do
7
- let(:base_uri) { 'http://example.com' }
7
+ let(:base_uri) { "http://example.com" }
8
8
 
9
- it 'makes simple get requests' do
9
+ it "makes simple get requests" do
10
10
  %w[ping info config/nsqlookupd_tcp_addresses].each do |api|
11
11
  url = "#{base_uri}/#{api}"
12
12
  stub_request(:get, url)
13
- FastlyNsq::Http::Nsqd.send(api.tr('/', '_').to_sym, base_uri: base_uri)
13
+ FastlyNsq::Http::Nsqd.send(api.tr("/", "_").to_sym, base_uri: base_uri)
14
14
 
15
15
  expect(a_request(:get, url)).to have_been_requested
16
16
  end
17
17
  end
18
18
 
19
- describe 'stats' do
20
- it 'can fetch stats' do
19
+ describe "stats" do
20
+ it "can fetch stats" do
21
21
  url = "#{base_uri}/stats?topic=lol&channel=foo&format=json"
22
22
  stub_request(:get, url)
23
- data = { topic: 'lol', channel: 'foo', format: 'json' }
23
+ data = {topic: "lol", channel: "foo", format: "json"}
24
24
 
25
- FastlyNsq::Http::Nsqd.stats(topic: 'lol', channel: 'foo', base_uri: base_uri)
25
+ FastlyNsq::Http::Nsqd.stats(topic: "lol", channel: "foo", base_uri: base_uri)
26
26
 
27
27
  expect(a_request(:get, url).with(query: data)).to have_been_requested
28
28
  end
29
29
 
30
- it 'raises InvaildFormatError if provided format is not in list' do
30
+ it "raises InvaildFormatError if provided format is not in list" do
31
31
  expect do
32
- FastlyNsq::Http::Nsqd.stats(format: 'foo')
32
+ FastlyNsq::Http::Nsqd.stats(format: "foo")
33
33
  end.to raise_error(FastlyNsq::Http::Nsqd::InvalidFormatError)
34
34
  end
35
35
  end
36
36
 
37
- it 'can publish messages' do
37
+ it "can publish messages" do
38
38
  url = "#{base_uri}/pub?topic=lol&defer=999"
39
39
  stub_request(:post, url)
40
- data = { topic: 'lol', defer: 999 }
40
+ data = {topic: "lol", defer: 999}
41
41
 
42
- FastlyNsq::Http::Nsqd.pub(topic: 'lol', defer: 999, message: 'SOMETHING', base_uri: base_uri)
42
+ FastlyNsq::Http::Nsqd.pub(topic: "lol", defer: 999, message: "SOMETHING", base_uri: base_uri)
43
43
 
44
- expect(a_request(:post, url).with(query: data, body: 'SOMETHING')).to have_been_requested
44
+ expect(a_request(:post, url).with(query: data, body: "SOMETHING")).to have_been_requested
45
45
  end
46
46
 
47
- it 'can publish multiple messages' do
47
+ it "can publish multiple messages" do
48
48
  url = "#{base_uri}/mpub?topic=lol&binary=false"
49
49
  stub_request(:post, url)
50
- data = { topic: 'lol' }
50
+ data = {topic: "lol"}
51
51
  body = "ONE MESSAGE\nTWO MESSAGE\nRED MESSAGE\nBLUE MESSAGE"
52
52
 
53
- FastlyNsq::Http::Nsqd.mpub(topic: 'lol', message: body, base_uri: base_uri)
53
+ FastlyNsq::Http::Nsqd.mpub(topic: "lol", message: body, base_uri: base_uri)
54
54
 
55
55
  expect(a_request(:post, url).with(query: data, body: body)).to have_been_requested
56
56
  end
57
57
 
58
- it 'can create, delete, empty, pause and unpause topics and channels' do
58
+ it "can create, delete, empty, pause and unpause topics and channels" do
59
59
  verbs = %w[create delete empty pause unpause]
60
60
 
61
61
  verbs.each do |verb|
62
62
  url = "#{base_uri}/topic/#{verb}?topic=lol"
63
63
  stub_request(:post, url)
64
- data = { topic: 'lol' }
64
+ data = {topic: "lol"}
65
65
 
66
- FastlyNsq::Http::Nsqd.send("topic_#{verb}".to_sym, topic: 'lol', base_uri: base_uri)
66
+ FastlyNsq::Http::Nsqd.send("topic_#{verb}".to_sym, topic: "lol", base_uri: base_uri)
67
67
 
68
68
  expect(a_request(:post, url).with(query: data)).to have_been_requested
69
69
 
70
70
  url = "#{base_uri}/channel/#{verb}?topic=lol&channel=foo"
71
71
  stub_request(:post, url)
72
- data = { topic: 'lol', channel: 'foo' }
72
+ data = {topic: "lol", channel: "foo"}
73
73
 
74
- FastlyNsq::Http::Nsqd.send("channel_#{verb}".to_sym, topic: 'lol', channel: 'foo', base_uri: base_uri)
74
+ FastlyNsq::Http::Nsqd.send("channel_#{verb}".to_sym, topic: "lol", channel: "foo", base_uri: base_uri)
75
75
 
76
76
  expect(a_request(:post, url).with(query: data)).to have_been_requested
77
77
  end
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helper'
4
- require 'fastly_nsq/http/nsqlookupd'
3
+ require "spec_helper"
4
+ require "fastly_nsq/http/nsqlookupd"
5
5
 
6
6
  RSpec.describe FastlyNsq::Http::Nsqlookupd, :webmock do
7
- let(:base_uri) { 'http://example.com' }
7
+ let(:base_uri) { "http://example.com" }
8
8
 
9
- it 'makes simple get requests' do
9
+ it "makes simple get requests" do
10
10
  %w[topics nodes ping info].each do |api|
11
11
  url = "#{base_uri}/#{api}"
12
12
  stub_request(:get, url)
@@ -16,52 +16,52 @@ RSpec.describe FastlyNsq::Http::Nsqlookupd, :webmock do
16
16
  end
17
17
  end
18
18
 
19
- it 'can lookup producers for a topic' do
19
+ it "can lookup producers for a topic" do
20
20
  url = "#{base_uri}/lookup?topic=lol"
21
21
  stub_request(:get, url)
22
- data = { topic: 'lol' }
22
+ data = {topic: "lol"}
23
23
 
24
- FastlyNsq::Http::Nsqlookupd.lookup(topic: 'lol', base_uri: base_uri)
24
+ FastlyNsq::Http::Nsqlookupd.lookup(topic: "lol", base_uri: base_uri)
25
25
 
26
26
  expect(a_request(:get, url).with(query: data)).to have_been_requested
27
27
  end
28
28
 
29
- it 'can lookup channels for a topic' do
29
+ it "can lookup channels for a topic" do
30
30
  url = "#{base_uri}/channels?topic=lol"
31
31
  stub_request(:get, url)
32
- data = { topic: 'lol' }
32
+ data = {topic: "lol"}
33
33
 
34
- FastlyNsq::Http::Nsqlookupd.channels(topic: 'lol', base_uri: base_uri)
34
+ FastlyNsq::Http::Nsqlookupd.channels(topic: "lol", base_uri: base_uri)
35
35
 
36
36
  expect(a_request(:get, url).with(query: data)).to have_been_requested
37
37
  end
38
38
 
39
- it 'can delete a topic' do
39
+ it "can delete a topic" do
40
40
  url = "#{base_uri}/delete_topic?topic=lol"
41
41
  stub_request(:get, url)
42
- data = { topic: 'lol' }
42
+ data = {topic: "lol"}
43
43
 
44
- FastlyNsq::Http::Nsqlookupd.delete_topic(topic: 'lol', base_uri: base_uri)
44
+ FastlyNsq::Http::Nsqlookupd.delete_topic(topic: "lol", base_uri: base_uri)
45
45
 
46
46
  expect(a_request(:get, url).with(query: data)).to have_been_requested
47
47
  end
48
48
 
49
- it 'can delete a channel' do
49
+ it "can delete a channel" do
50
50
  url = "#{base_uri}/delete_channel?topic=lol&channel=foo"
51
51
  stub_request(:get, url)
52
- data = { topic: 'lol', channel: 'foo' }
52
+ data = {topic: "lol", channel: "foo"}
53
53
 
54
- FastlyNsq::Http::Nsqlookupd.delete_channel(topic: 'lol', channel: 'foo', base_uri: base_uri)
54
+ FastlyNsq::Http::Nsqlookupd.delete_channel(topic: "lol", channel: "foo", base_uri: base_uri)
55
55
 
56
56
  expect(a_request(:get, url).with(query: data)).to have_been_requested
57
57
  end
58
58
 
59
- it 'can tombstone a producer' do
59
+ it "can tombstone a producer" do
60
60
  url = "#{base_uri}/tombstone_topic_producer?topic=lol&node=localhost:8989"
61
61
  stub_request(:get, url)
62
- data = { topic: 'lol', node: 'localhost:8989' }
62
+ data = {topic: "lol", node: "localhost:8989"}
63
63
 
64
- FastlyNsq::Http::Nsqlookupd.tombstone_topic_producer(topic: 'lol', node: 'localhost:8989', base_uri: base_uri)
64
+ FastlyNsq::Http::Nsqlookupd.tombstone_topic_producer(topic: "lol", node: "localhost:8989", base_uri: base_uri)
65
65
 
66
66
  expect(a_request(:get, url).with(query: data)).to have_been_requested
67
67
  end
data/spec/http_spec.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helper'
4
- require 'fastly_nsq/http'
3
+ require "spec_helper"
4
+ require "fastly_nsq/http"
5
5
 
6
6
  RSpec.describe FastlyNsq::Http, :webmock do
7
- let(:base_url) { 'http://example.com' }
8
- describe 'get' do
9
- it 'can make simple requests' do
7
+ let(:base_url) { "http://example.com" }
8
+ describe "get" do
9
+ it "can make simple requests" do
10
10
  url = "#{base_url}/boop"
11
11
  stub_request(:get, url)
12
12
 
@@ -16,9 +16,9 @@ RSpec.describe FastlyNsq::Http, :webmock do
16
16
  expect(a_request(:get, url)).to have_been_requested.twice
17
17
  end
18
18
 
19
- it 'can make requests with params' do
19
+ it "can make requests with params" do
20
20
  url = "#{base_url}/boop?sloop=noop"
21
- data = { sloop: 'noop' }
21
+ data = {sloop: "noop"}
22
22
  stub_request(:get, url)
23
23
 
24
24
  FastlyNsq::Http.new(uri: url).get(data)
@@ -27,11 +27,11 @@ RSpec.describe FastlyNsq::Http, :webmock do
27
27
  end
28
28
  end
29
29
 
30
- describe 'post' do
31
- it 'can make simple post requests' do
30
+ describe "post" do
31
+ it "can make simple post requests" do
32
32
  url = "#{base_url}/boop?sloop=noop"
33
33
  stub_request(:post, url)
34
- data = { sloop: 'noop' }
34
+ data = {sloop: "noop"}
35
35
 
36
36
  FastlyNsq::Http.new(uri: URI.parse(url)).post(data)
37
37
  FastlyNsq::Http.new(uri: url).post(data)
@@ -39,11 +39,11 @@ RSpec.describe FastlyNsq::Http, :webmock do
39
39
  expect(a_request(:post, url)).to have_been_requested.twice
40
40
  end
41
41
 
42
- it 'can make post requests with bodies' do
42
+ it "can make post requests with bodies" do
43
43
  url = "#{base_url}/boop?sloop=noop"
44
44
  stub_request(:post, url)
45
- data = { sloop: 'noop' }
46
- body = 'SOME MESSAGE'
45
+ data = {sloop: "noop"}
46
+ body = "SOME MESSAGE"
47
47
 
48
48
  FastlyNsq::Http.new(uri: url).post(data, body)
49
49
 
@@ -51,18 +51,18 @@ RSpec.describe FastlyNsq::Http, :webmock do
51
51
  end
52
52
  end
53
53
 
54
- describe 'SSL' do
55
- it 'can be asked to use SSL' do
56
- ssl_url = 'https://example.com:80/boop'
54
+ describe "SSL" do
55
+ it "can be asked to use SSL" do
56
+ ssl_url = "https://example.com:80/boop"
57
57
  stub_request(:get, ssl_url)
58
58
 
59
- cert_file = '/tmp/thing.cert'
60
- key_file = '/tmp/thing.key'
59
+ cert_file = "/tmp/thing.cert"
60
+ key_file = "/tmp/thing.key"
61
61
 
62
- allow(File).to receive(:read).with(cert_file).and_return('something')
63
- allow(File).to receive(:read).with(key_file).and_return('something')
64
- allow(OpenSSL::X509::Certificate).to receive(:new).with('something').and_return(true)
65
- allow(OpenSSL::PKey::RSA).to receive(:new).with('something').and_return(true)
62
+ allow(File).to receive(:read).with(cert_file).and_return("something")
63
+ allow(File).to receive(:read).with(key_file).and_return("something")
64
+ allow(OpenSSL::X509::Certificate).to receive(:new).with("something").and_return(true)
65
+ allow(OpenSSL::PKey::RSA).to receive(:new).with("something").and_return(true)
66
66
 
67
67
  url = "#{base_url}/boop"
68
68
  http = FastlyNsq::Http.new(uri: url, cert_filename: cert_file, key_filename: key_file)
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helper'
3
+ require "spec_helper"
4
4
 
5
- RSpec.describe 'integration' do
6
- let!(:topic) { 'fnsq-topic' }
7
- let!(:channel) { 'fnsq-channel' }
8
- let!(:message) { { 'foo' => 'bar' } }
5
+ RSpec.describe "integration" do
6
+ let!(:topic) { "fnsq-topic" }
7
+ let!(:channel) { "fnsq-channel" }
8
+ let!(:message) { {"foo" => "bar"} }
9
9
 
10
10
  before { reset_topic(topic, channel: channel) }
11
11
 
12
- it 'processes jobs' do
12
+ it "processes jobs" do
13
13
  received = nil
14
14
  producer = FastlyNsq::Producer.new(topic: topic)
15
15
  FastlyNsq::Listener.new(topic: topic, channel: channel, processor: ->(m) { received = m })
@@ -18,8 +18,8 @@ RSpec.describe 'integration' do
18
18
  expect { received&.body }.to eventually(eq(message)).within(2)
19
19
  end
20
20
 
21
- describe 'inline', :inline do
22
- it 'processes job' do
21
+ describe "inline", :inline do
22
+ it "processes job" do
23
23
  received = nil
24
24
  producer = FastlyNsq::Producer.new(topic: topic)
25
25
  FastlyNsq::Listener.new(topic: topic, channel: channel, processor: ->(m) { received = m })
@@ -29,8 +29,8 @@ RSpec.describe 'integration' do
29
29
  end
30
30
  end
31
31
 
32
- describe 'fake', :fake do
33
- it 'stores jobs' do
32
+ describe "fake", :fake do
33
+ it "stores jobs" do
34
34
  received = nil
35
35
  encoded_message = JSON.dump(message)
36
36
  producer = FastlyNsq::Producer.new(topic: topic)
@@ -1,40 +1,40 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helper'
3
+ require "spec_helper"
4
4
 
5
5
  RSpec.describe FastlyNsq::Launcher do
6
- let!(:channel) { 'fnsq' }
7
- let!(:options) { { max_threads: 3, timeout: 9 } }
8
- let!(:topic) { 'fnsq' }
6
+ let!(:channel) { "fnsq" }
7
+ let!(:options) { {max_threads: 3, timeout: 9} }
8
+ let!(:topic) { "fnsq" }
9
9
 
10
- let(:launcher) { FastlyNsq::Launcher.new options }
11
- let(:listener) { FastlyNsq::Listener.new(topic: topic, channel: channel, processor: ->(*) {}) }
10
+ let(:launcher) { FastlyNsq::Launcher.new(**options) }
11
+ let(:listener) { FastlyNsq::Listener.new(topic: topic, channel: channel, processor: ->(*) {}) }
12
12
  let(:manager) { launcher.manager }
13
13
 
14
14
  before { reset_topic(topic, channel: channel) }
15
15
  before { expect { listener }.to eventually(be_connected).within(5) }
16
- after { listener.terminate if listener.connected? }
16
+ after { listener.terminate if listener.connected? }
17
17
 
18
- it 'creates a manager with correct options' do
18
+ it "creates a manager with correct options" do
19
19
  launcher
20
20
 
21
21
  expect(FastlyNsq.manager.pool.max_threads).to eq(3)
22
22
  end
23
23
 
24
- describe '#beat' do
25
- let!(:logger) { Logger.new(nil).tap { |l| l.level = Logger::DEBUG } }
24
+ describe "#beat" do
25
+ let!(:logger) { Logger.new(nil).tap { |l| l.level = Logger::DEBUG } }
26
26
  let!(:launcher) { FastlyNsq::Launcher.new pulse: 0.01, logger: logger }
27
27
 
28
- it 'creates a heartbeat thread' do
28
+ it "creates a heartbeat thread" do
29
29
  expect(logger).not_to receive(:error)
30
- expect { launcher.beat }.to eventually_not(eq('dead')).pause_for(1)
30
+ expect { launcher.beat }.to eventually_not(eq("dead")).pause_for(1)
31
31
  end
32
32
  end
33
33
 
34
- describe '#stop_listeners' do
34
+ describe "#stop_listeners" do
35
35
  before { launcher }
36
36
 
37
- it 'stops listeners and sets done' do
37
+ it "stops listeners and sets done" do
38
38
  expect(launcher).not_to be_stopping
39
39
  expect(manager).to receive(:stop_listeners)
40
40
  expect(manager).not_to receive(:terminate)
@@ -45,20 +45,20 @@ RSpec.describe FastlyNsq::Launcher do
45
45
  end
46
46
  end
47
47
 
48
- describe '#stop' do
48
+ describe "#stop" do
49
49
  before { launcher }
50
50
 
51
- it 'stops the manager within a deadline' do
51
+ it "stops the manager within a deadline" do
52
52
  expect(manager).to receive(:terminate).with(options[:timeout])
53
53
  launcher.stop
54
54
  end
55
55
  end
56
56
 
57
- describe 'callbacks' do
57
+ describe "callbacks" do
58
58
  before { FastlyNsq.events.each { |(_, v)| v.clear } }
59
- after { FastlyNsq.events.each { |(_, v)| v.clear } }
59
+ after { FastlyNsq.events.each { |(_, v)| v.clear } }
60
60
 
61
- it 'fires :startup event on initialization' do
61
+ it "fires :startup event on initialization" do
62
62
  obj = spy
63
63
  block = -> { obj.start }
64
64
  FastlyNsq.on(:startup, &block)
@@ -67,7 +67,7 @@ RSpec.describe FastlyNsq::Launcher do
67
67
  expect(obj).to have_received(:start)
68
68
  end
69
69
 
70
- it 'fires :shutdown event on #stop' do
70
+ it "fires :shutdown event on #stop" do
71
71
  launcher
72
72
 
73
73
  obj = spy
@@ -78,7 +78,7 @@ RSpec.describe FastlyNsq::Launcher do
78
78
  expect(obj).to have_received(:stop)
79
79
  end
80
80
 
81
- it 'fires :heartbeat event on #heartbeat' do
81
+ it "fires :heartbeat event on #heartbeat" do
82
82
  obj = spy
83
83
  block = -> { obj.beat }
84
84
  FastlyNsq.on(:heartbeat, &block)