liebre 0.1.5 → 0.1.12

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b885fad6a4e048ed9330efede57398f9b75e128b
4
- data.tar.gz: 082ca325c3b614d6b60bb372a65d2039458d3cfc
3
+ metadata.gz: 359dbb271508fe21b7d58c5c0a5aa04d98821b98
4
+ data.tar.gz: 792514c9a04576605d85e66b2cf294b3619eb8de
5
5
  SHA512:
6
- metadata.gz: 3c967f9aa11caa15105394e29fba511aea2cf53504a5ec8af4324067a7e8fe282f9c7f96a2457a3e6b4b20efbbd8b4e15f6652fce20850bff5c9ac1b365ce974
7
- data.tar.gz: d453dc69d000db9c0695d81649189da9e7c4b1a45493d110ee0ebc488960ea9c7e4a6fe089a1ae3d9f68101365ddea79c5fe419ce029cfc4cee34865246a8a63
6
+ metadata.gz: f182c3482cfe14d0022065449731fd17cdffc20285a59828a0a4928133d84ace37aa1cfe724513519a4016ff226f443d3caf39376a23a53e172d5b157ed05fb6
7
+ data.tar.gz: bacd99b79ca2d22c1ae19e207bdef34906993f4393cd9a186aec5503b6b1bfd042edfd039226fb023afcf4aaaea2f0a4f51ed990e15e6ef869a0f4d97a3f3041
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- liebre (0.1.3)
4
+ liebre (0.1.11)
5
5
  bunny (~> 2.5, >= 2.5.1)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  amq-protocol (2.0.1)
11
- bunny (2.5.1)
11
+ bunny (2.6.3)
12
12
  amq-protocol (>= 2.0.1)
13
13
  coderay (1.1.1)
14
14
  diff-lcs (1.2.5)
@@ -44,4 +44,4 @@ DEPENDENCIES
44
44
  rspec
45
45
 
46
46
  BUNDLED WITH
47
- 1.12.5
47
+ 1.13.6
@@ -1,21 +1,33 @@
1
1
  require "yaml"
2
2
  require "bunny"
3
+ require "singleton"
3
4
 
4
5
  module Liebre
5
6
  class ConnectionManager
6
7
 
7
- def initialize path = Liebre::Config.connection_path
8
- @path = path
8
+ include Singleton
9
+
10
+ def initialize
11
+ @path = Liebre::Config.connection_path
9
12
  @connections = {}
13
+ @channels = {}
14
+ @lock = Mutex.new
10
15
  end
11
16
 
12
17
  def start
13
- initialize_connections
14
- connections.each do |_, bunny|
15
- bunny.start
18
+ @lock.synchronize do
19
+ initialize_connections
20
+ connections.each do |connection_name, bunny|
21
+ begin
22
+ bunny.start
23
+ rescue => e
24
+ $logger.error("#{self.class.name}: Can't connect to #{connection_name} instance")
25
+ $logger.error(e.message + "\n" + e.backtrace.join("\n"))
26
+ end
27
+ end
16
28
  end
17
29
  end
18
-
30
+
19
31
  def ensure_started
20
32
  all_open = !@connections.empty? and @connections.all? do |_, bunny|
21
33
  bunny.open?
@@ -32,17 +44,27 @@ module Liebre
32
44
  connections[connection_name.to_sym]
33
45
  end
34
46
 
47
+ def channel_for connection_name, consumer_pool_size = 1
48
+ @lock.synchronize do
49
+ channels[connection_name] ||= begin
50
+ get(connection_name).create_channel nil, consumer_pool_size
51
+ end
52
+ end
53
+ end
54
+
35
55
  def stop
36
- connections.each do |_, bunny|
37
- if bunny and bunny.open?
38
- bunny.close
56
+ @lock.synchronize do
57
+ connections.each do |_, bunny|
58
+ if bunny and bunny.open?
59
+ bunny.close
60
+ end
39
61
  end
62
+ connections.clear
40
63
  end
41
- connections.clear
42
64
  end
43
65
 
44
66
  private
45
-
67
+
46
68
  def initialize_connections
47
69
  config.each do |name, conf|
48
70
  @connections[name.to_sym] = connection_for(conf)
@@ -58,7 +80,7 @@ module Liebre
58
80
  Liebre.env ? result.fetch(Liebre.env) : result
59
81
  end
60
82
 
61
- attr_reader :path, :connections
83
+ attr_reader :path, :connections, :channels
62
84
 
63
85
  end
64
86
  end
@@ -7,16 +7,17 @@ module Liebre
7
7
 
8
8
  def enqueue message, options = {}
9
9
  with_connection do
10
- logger.debug "Liebre: Publishing '#{message}' with '#{options}' to exchange: #{exchange}"
10
+ exchange = exchange_for default_channel
11
+ logger.debug "Liebre: Publishing '#{message}' with '#{options}' to exchange: #{exchange.name}"
11
12
  exchange.publish message, options
12
13
  end
13
14
  end
14
15
 
15
16
  def enqueue_and_wait message, options = {}
16
17
  result = nil
17
- with_connection do
18
+ with_rpc_channel do |channel|
18
19
  correlation_id = options[:correlation_id] ||= generate_uuid
19
- reply_queue = reply_queue correlation_id
20
+ reply_queue = reply_queue channel, correlation_id
20
21
  options[:reply_to] = reply_queue.name
21
22
  reply_queue.subscribe(:block => false) do |delivery_info, meta, payload|
22
23
  if meta[:correlation_id] == correlation_id
@@ -25,7 +26,8 @@ module Liebre
25
26
  channel.consumers[delivery_info.consumer_tag].cancel
26
27
  end
27
28
  end
28
- logger.debug "Liebre: Publishing '#{message}' with '#{options}' to exchange: #{exchange}"
29
+ exchange = exchange_for channel
30
+ logger.debug "Liebre: Publishing '#{message}' with '#{options}' to exchange: #{exchange.name}"
29
31
  exchange.publish message, options
30
32
  begin
31
33
  Timeout.timeout(Liebre.config.rpc_request_timeout) do
@@ -33,12 +35,6 @@ module Liebre
33
35
  end
34
36
  rescue Timeout::Error
35
37
  #do nothing
36
- ensure
37
- begin
38
- reply_queue.delete
39
- rescue Timeout::Error
40
- logger.error "error while trying to delete RPC exclusive queue"
41
- end
42
38
  end
43
39
  end
44
40
  result
@@ -50,20 +46,34 @@ module Liebre
50
46
 
51
47
  def with_connection
52
48
  connection_manager.ensure_started
53
- yield
49
+ begin
50
+ yield
51
+ rescue Bunny::Exception => e
52
+ logger.warn("#{self.class.name}: #{e.class} found restarting connection - #{e.message}")
53
+ connection_manager.restart
54
+ retry
55
+ end
54
56
  end
55
57
 
56
- def reply_queue correlation_id
57
- queue_name = "#{publisher_name}_callback_#{correlation_id}"
58
- channel.queue queue_name, :exclusive => true
58
+ def with_rpc_channel
59
+ with_connection do
60
+ channel = connection_manager.get(connection_name).create_channel
61
+ yield(channel)
62
+ channel.close
63
+ end
64
+ end
65
+
66
+ def default_channel
67
+ @default_channel ||= connection_manager.channel_for(connection_name)
59
68
  end
60
69
 
61
- def exchange
62
- @exchange ||= Liebre::Common::Utils.create_exchange channel, exchange_config
70
+ def reply_queue channel, correlation_id
71
+ queue_name = "#{publisher_name}_callback_#{correlation_id}"
72
+ channel.queue queue_name, :exclusive => true, :auto_delete => true
63
73
  end
64
74
 
65
- def channel
66
- @channel ||= connection_manager.get(connection_name).create_channel
75
+ def exchange_for channel
76
+ Liebre::Common::Utils.create_exchange channel, exchange_config
67
77
  end
68
78
 
69
79
  def publishers
@@ -83,7 +93,7 @@ module Liebre
83
93
  end
84
94
 
85
95
  def connection_manager
86
- @connection_manager ||= ConnectionManager.new
96
+ @connection_manager ||= ConnectionManager.instance
87
97
  end
88
98
 
89
99
  def generate_uuid
data/lib/liebre/runner.rb CHANGED
@@ -12,7 +12,7 @@ module Liebre
12
12
 
13
13
  def start
14
14
  setup_shutdown
15
- conn_manager.restart
15
+ connection_manager.restart
16
16
  start_consumers
17
17
  sleep
18
18
  rescue StandardError => e
@@ -29,13 +29,13 @@ module Liebre
29
29
  def do_shutdown
30
30
  Thread.start do
31
31
  logger.info("Liebre: Closing AMQP connection...")
32
- conn_manager.stop
32
+ connection_manager.stop
33
33
  logger.info("Liebre: AMQP connection closed")
34
34
  end.join
35
35
  end
36
36
 
37
37
  def start_consumers
38
- consumers = Consumers.new(conn_manager)
38
+ consumers = Consumers.new(connection_manager)
39
39
  consumers.start_all
40
40
  end
41
41
 
@@ -49,8 +49,8 @@ module Liebre
49
49
  Liebre.logger
50
50
  end
51
51
 
52
- def conn_manager
53
- @conn_manager ||= ConnectionManager.new
52
+ def connection_manager
53
+ @connection_manager ||= ConnectionManager.instance
54
54
  end
55
55
 
56
56
  attr_reader :retry_interval
@@ -2,7 +2,7 @@ module Liebre
2
2
  class Runner
3
3
  class Starter
4
4
  class Consumer
5
-
5
+
6
6
  autoload :Handler, "liebre/runner/starter/consumer/handler"
7
7
 
8
8
  def initialize connection, config
@@ -14,9 +14,9 @@ module Liebre
14
14
  initialize_error_queue
15
15
  initialize_queue
16
16
  end
17
-
17
+
18
18
  private
19
-
19
+
20
20
  def initialize_queue
21
21
  queue.subscribe(:manual_ack => true) do |info, meta, payload|
22
22
  response = :reject
@@ -34,19 +34,19 @@ module Liebre
34
34
  end
35
35
  end
36
36
  end
37
-
37
+
38
38
  def initialize_error_queue
39
39
  Resources.new(connection, error_config).queue
40
40
  end
41
-
41
+
42
42
  def klass
43
43
  @klass ||= Kernel.const_get config.fetch("class_name")
44
44
  end
45
-
45
+
46
46
  def handler
47
47
  @handler ||= Handler.new(channel)
48
48
  end
49
-
49
+
50
50
  def channel
51
51
  resources.channel
52
52
  end
@@ -62,32 +62,32 @@ module Liebre
62
62
  def resources
63
63
  @resources ||= Resources.new(connection, parse_config)
64
64
  end
65
-
65
+
66
66
  def parse_config
67
67
  result = clone_hash config
68
68
  result['queue']['opts']['arguments'] ||= {}
69
69
  result['queue']['opts']['arguments']['x-dead-letter-exchange'] = result['exchange']['name'] + "-error"
70
70
  result
71
71
  end
72
-
72
+
73
73
  def error_config
74
74
  result = clone_hash config
75
75
  result['exchange']['name'] += "-error"
76
76
  result['queue']['name'] += "-error"
77
77
  result
78
78
  end
79
-
79
+
80
80
  def logger
81
81
  Liebre::Config.logger
82
82
  end
83
-
83
+
84
84
  def clone_hash hash
85
85
  Marshal.load(Marshal.dump(hash))
86
86
  end
87
87
 
88
88
  attr_reader :connection, :config
89
-
89
+
90
90
  end
91
91
  end
92
92
  end
93
- end
93
+ end
@@ -7,29 +7,29 @@ module Liebre
7
7
  def initialize channel
8
8
  @channel = channel
9
9
  end
10
-
10
+
11
11
  def respond action, meta
12
12
  send(action, meta.delivery_tag)
13
13
  end
14
14
 
15
15
  private
16
-
16
+
17
17
  def ack delivery_tag
18
18
  channel.acknowledge delivery_tag
19
19
  end
20
-
20
+
21
21
  def reject delivery_tag
22
22
  channel.reject delivery_tag, true
23
23
  end
24
-
24
+
25
25
  def error delivery_tag
26
- channel.reject delivery_tag, false
26
+ channel.reject delivery_tag, false
27
27
  end
28
28
 
29
29
  attr_reader :channel
30
-
30
+
31
31
  end
32
32
  end
33
33
  end
34
34
  end
35
- end
35
+ end
@@ -18,15 +18,21 @@ module Liebre
18
18
  end
19
19
 
20
20
  def channel
21
- @channel ||= connection.create_channel(nil, pool_size)
21
+ @channel ||= connection.create_channel(nil, pool_size).tap do |channel|
22
+ channel.prefetch(prefetch_count)
23
+ end
22
24
  end
23
25
 
24
26
  private
25
-
27
+
26
28
  def queue_builder
27
29
  @queue_bilder ||= QueueBuilder.new(channel, config)
28
30
  end
29
31
 
32
+ def prefetch_count
33
+ config.fetch("prefetch_count", 10)
34
+ end
35
+
30
36
  def pool_size
31
37
  config.fetch("pool_size", 1)
32
38
  end
@@ -36,4 +42,4 @@ module Liebre
36
42
  end
37
43
  end
38
44
  end
39
- end
45
+ end
@@ -11,8 +11,12 @@ module Liebre
11
11
 
12
12
  def queue
13
13
  q = channel.queue(queue_name, queue_opts)
14
- routing_keys.each do |key|
15
- q.bind(exchange, bind_opts.merge(:routing_key => key))
14
+ if routing_keys.any?
15
+ routing_keys.each do |key|
16
+ q.bind(exchange, bind_opts.merge(:routing_key => key))
17
+ end
18
+ else
19
+ q.bind(exchange, bind_opts)
16
20
  end
17
21
  q
18
22
  end
@@ -40,8 +44,10 @@ module Liebre
40
44
  end
41
45
 
42
46
  def routing_keys
43
- bind_opts[:routing_key] = [*bind_opts[:routing_key]]
44
- bind_opts.delete :routing_key
47
+ @routing_keys ||= begin
48
+ bind_opts[:routing_key] = [*bind_opts[:routing_key]]
49
+ bind_opts.delete :routing_key
50
+ end
45
51
  end
46
52
 
47
53
  def bind_opts
@@ -1,5 +1,5 @@
1
1
  module Liebre
2
-
3
- VERSION = "0.1.5"
4
2
 
5
- end
3
+ VERSION = "0.1.12"
4
+
5
+ end
@@ -6,6 +6,7 @@ consumers:
6
6
  rpc: false
7
7
  pool_size: 1
8
8
  num_threads: 3
9
+ prefetch_count: 5
9
10
  exchange:
10
11
  name: "consumer_exchange"
11
12
  type: "fanout"
@@ -15,7 +16,7 @@ consumers:
15
16
  name: "consumer_queue"
16
17
  opts:
17
18
  durable: false
18
-
19
+
19
20
  some_rpc:
20
21
  class_name: MyRPC
21
22
  rpc: true
@@ -30,7 +31,7 @@ consumers:
30
31
  name: "rpc_queue"
31
32
  opts:
32
33
  durable: false
33
-
34
+
34
35
  publishers:
35
36
  some_publisher:
36
37
  exchange:
@@ -44,4 +45,4 @@ publishers:
44
45
  name: "rpc_exchange"
45
46
  type: "fanout"
46
47
  opts:
47
- durable: false
48
+ durable: false
@@ -1,73 +1,76 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe "Integration" do
4
-
4
+
5
5
  class MyConsumer
6
-
6
+
7
7
  def initialize payload, meta
8
8
  @payload = payload
9
9
  @meta = meta
10
10
  end
11
-
11
+
12
12
  end
13
-
13
+
14
14
  class MyRPC
15
-
15
+
16
16
  def initialize payload, meta, callback
17
17
  @payload = payload
18
18
  @meta = meta
19
19
  @callback = callback
20
20
  end
21
-
21
+
22
22
  def call
23
23
  @callback.call(@payload)
24
24
  end
25
-
25
+
26
26
  end
27
-
27
+
28
28
  let :config_path do
29
29
  File.expand_path("../config/liebre.yml" ,__FILE__)
30
30
  end
31
-
31
+
32
32
  let :connection_path do
33
33
  File.expand_path("../config/rabbitmq.yml" ,__FILE__)
34
34
  end
35
-
35
+
36
36
  before do
37
+ Liebre::ConnectionManager.instance_variable_set :@singleton__instance__, nil
37
38
  Liebre::Config.config_path = config_path
38
39
  Liebre::Config.connection_path = connection_path
39
40
  end
40
-
41
+
41
42
  let(:consumer) { double 'consumer' }
42
-
43
+
43
44
  it do
44
-
45
+
45
46
  main_thread = Thread.new do
46
47
  server = Liebre::Runner.new
47
48
  server.start
48
49
  end
49
-
50
+
51
+ sleep 0.1
52
+
50
53
  publisher = Liebre::Publisher.new("some_publisher")
51
-
54
+
52
55
  allow(MyConsumer).to receive(:new).with("hello", anything).and_return consumer
53
-
56
+
54
57
  #the consumer returns first :ack, then :reject and the message gets requed, then :error, and the message turns dead-lettered
55
58
  expect(consumer).to receive(:call).and_return :ack, :reject, :error
56
-
59
+
57
60
  publisher.enqueue "hello", :routing_key => "consumer_queue" #:ack
58
61
  publisher.enqueue "hello", :routing_key => "consumer_queue" #:reject then :error
59
-
60
-
61
-
62
+
63
+
64
+
62
65
  rpc_publisher = Liebre::Publisher.new("rpc_publisher")
63
-
66
+
64
67
  param = "return this string"
65
-
68
+
66
69
  result = rpc_publisher.rpc param, :routing_key => "rpc_queue"
67
-
70
+
68
71
  expect(result).to eq param
69
-
72
+
70
73
  sleep 0.1
71
74
  end
72
-
73
- end
75
+
76
+ end
@@ -1,15 +1,15 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe Liebre::Config do
4
-
4
+
5
5
  let :config_path do
6
6
  File.expand_path("../../config/liebre.yml" ,__FILE__)
7
7
  end
8
-
8
+
9
9
  let :connection_path do
10
10
  File.expand_path("../../config/rabbitmq.yml" ,__FILE__)
11
11
  end
12
-
12
+
13
13
  before do
14
14
  described_class.config_path = config_path
15
15
  described_class.connection_path = connection_path
@@ -26,37 +26,38 @@ RSpec.describe Liebre::Config do
26
26
  expect(described_class.env).to eq "some_env"
27
27
  end
28
28
  end
29
-
29
+
30
30
  describe '#consumers' do
31
-
31
+
32
32
  let(:consumer_names) { %w{ some_consumer some_rpc } }
33
-
33
+
34
34
  let(:consumer_config) do
35
35
  {
36
36
  'class_name' => "MyConsumer",
37
37
  'rpc' => false
38
38
  }
39
39
  end
40
-
40
+
41
41
  let(:rpc_config) do
42
42
  {
43
43
  'class_name' => "MyRPC",
44
44
  'rpc' => true
45
45
  }
46
46
  end
47
-
47
+
48
48
  it do
49
-
49
+
50
50
  expect(subject.consumers.keys).to eq consumer_names
51
-
51
+
52
52
  expect(subject.consumers['some_consumer']['class_name']).to eq consumer_config['class_name']
53
53
  expect(subject.consumers['some_consumer']['rpc']).to eq consumer_config['rpc']
54
-
54
+ expect(subject.consumers['some_consumer']['prefetch_count']).to eq 5
55
+
55
56
  expect(subject.consumers['some_rpc']['class_name']).to eq rpc_config['class_name']
56
57
  expect(subject.consumers['some_rpc']['rpc']).to eq rpc_config['rpc']
57
-
58
+
58
59
  end
59
-
60
+
60
61
  end
61
62
 
62
63
  end
@@ -5,8 +5,12 @@ RSpec.describe Liebre::ConnectionManager do
5
5
  let :connection_path do
6
6
  File.expand_path("../../config/rabbitmq.yml" ,__FILE__)
7
7
  end
8
+
9
+ before do
10
+ Liebre::Config.connection_path = connection_path
11
+ end
8
12
 
9
- subject { described_class.new connection_path }
13
+ subject { described_class.instance }
10
14
 
11
15
  describe '.start and .get' do
12
16
 
@@ -22,15 +22,14 @@ RSpec.describe Liebre::Publisher do
22
22
  end
23
23
 
24
24
  let(:channel) { double 'channel' }
25
- let(:bunny_connection) { double 'bunny_conection', :create_channel => channel }
26
- let(:connection_manager) { double 'connection_manager', :get => bunny_connection }
27
- let(:exchange) { double 'exchange' }
25
+ let(:connection_manager) { double 'connection_manager' }
26
+ let(:exchange) { double 'exchange', :name => "exchange" }
28
27
 
29
28
  before do
30
29
  allow_any_instance_of(Liebre::Config).to receive(:publishers).and_return publishers_config
31
30
  allow_any_instance_of(Liebre::Config).to receive(:rpc_request_timeout).and_return 10
32
31
 
33
- expect(Liebre::ConnectionManager).to receive(:new).and_return connection_manager
32
+ allow(Liebre::ConnectionManager).to receive(:instance).and_return connection_manager
34
33
  expect(connection_manager).to receive(:ensure_started)
35
34
 
36
35
  expect(Liebre::Common::Utils).to receive(:create_exchange).
@@ -41,6 +40,10 @@ RSpec.describe Liebre::Publisher do
41
40
  subject { described_class.new 'test_publisher' }
42
41
 
43
42
  describe "#enqueue" do
43
+ before do
44
+ expect(connection_manager).to receive(:channel_for).with(:default).and_return channel
45
+ end
46
+
44
47
  it do
45
48
  message = "abc"
46
49
  expect(exchange).to receive(:publish).with message, {}
@@ -56,11 +59,15 @@ RSpec.describe Liebre::Publisher do
56
59
  let(:reply_queue) { double "reply_queue", :name => reply_queue_name }
57
60
  let(:delivery_info) { double "delivery_info", :consumer_tag => "tag"}
58
61
  let(:consumer) { double 'consumer' }
62
+ let(:connection) { double 'connection' }
59
63
  let(:consumers) { {"tag" => consumer} }
60
64
 
61
65
  before do
62
- expect(channel).to receive(:queue).with(reply_queue_name, :exclusive => true).
66
+ expect(connection_manager).to receive(:get).with(:default).and_return connection
67
+ expect(connection).to receive(:create_channel).and_return channel
68
+ expect(channel).to receive(:queue).with(reply_queue_name, :exclusive => true, :auto_delete => true).
63
69
  and_return reply_queue
70
+ expect(channel).to receive(:close)
64
71
  end
65
72
 
66
73
  it do
@@ -75,8 +82,6 @@ RSpec.describe Liebre::Publisher do
75
82
 
76
83
  block.call(delivery_info, {:correlation_id => correlation_id}, answer)
77
84
  end
78
-
79
- expect(reply_queue).to receive(:delete)
80
85
 
81
86
  result = subject.enqueue_and_wait message, :correlation_id => correlation_id
82
87
  expect(result).to eq answer
@@ -1,32 +1,36 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe Liebre::Runner do
4
-
4
+
5
+ let :connection_path do
6
+ File.expand_path("../../config/rabbitmq.yml" ,__FILE__)
7
+ end
5
8
 
6
9
  let(:interval) { 1234 }
7
10
 
8
11
  subject { described_class.new(interval) }
9
12
  let(:logger) { double 'logger' }
10
13
 
11
- let(:conn_manager) { double 'conn_manager'}
14
+ let(:connection_manager) { double 'connection_manager'}
12
15
 
13
16
  let(:consumers) { double 'consumers' }
14
17
 
15
18
  before do
19
+ Liebre::Config.connection_path = connection_path
16
20
 
17
21
  allow(subject).to receive(:logger).
18
22
  and_return(logger)
19
23
 
20
- allow(Liebre::ConnectionManager).to receive(:new).
21
- and_return(conn_manager)
24
+ allow(Liebre::ConnectionManager).to receive(:instance).
25
+ and_return(connection_manager)
22
26
 
23
27
  allow(described_class::Consumers).to receive(:new).
24
- with(conn_manager).and_return(consumers)
28
+ with(connection_manager).and_return(consumers)
25
29
  end
26
30
 
27
31
  describe '#run' do
28
32
  it 'logs and retries after fail' do
29
- expect(conn_manager).to receive(:restart) do
33
+ expect(connection_manager).to receive(:restart) do
30
34
  raise "some error"
31
35
  end
32
36
 
@@ -38,7 +42,7 @@ RSpec.describe Liebre::Runner do
38
42
  expect(message).to match /Retrying/
39
43
  end
40
44
 
41
- expect(conn_manager).to receive(:restart)
45
+ expect(connection_manager).to receive(:restart)
42
46
  expect(consumers ).to receive(:start_all)
43
47
 
44
48
  expect(subject).to receive(:sleep)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liebre
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - jcabotc
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-12-27 00:00:00.000000000 Z
12
+ date: 2017-01-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bunny