philotic 0.2.3 → 0.2.4

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: e9dfad8771c88891eb5d27d036172b7f8d5176ec
4
- data.tar.gz: 99259fa7fa831adda68922583b3ce2aa908c0d0f
3
+ metadata.gz: 47b970f227032a30e680562ee09c41d2ba6f5a46
4
+ data.tar.gz: bbc36d33ee8bdd0c09b7b9a2af4a0b3dfe991f5d
5
5
  SHA512:
6
- metadata.gz: 9c937f8d0c61d0c5ba39fe03ccb43e1bb4ae43af609bb7c2c45f796c084601e34e43a2d73079d6438cd6145cabc2b5d7f13ce9e99e751a7fc87fd17b96b3c5ee
7
- data.tar.gz: d64d6ae80d67e41e2c98175b297e670a63bb43647caac90843277ab323af799887084fa5e6187bb386e01b4c9c0790cd9e7f08fcedcacc87b7970bbe2bc78b6d
6
+ metadata.gz: a368f139afcdfa7e9516653cd8f9455ec7d6b24bc33eef603b129a5366f25b2e1fb9ac52f70d85dadbc35995b4b201678ba22046edc4da32cbf98aa5b9f97e08
7
+ data.tar.gz: ff47fae4fb59c8e39c4fe73974295780765e6239e7c9d6f25e2c6a296ea2149add58f8d628ce9eff0d207d0068899686e0a307983db0c1e52ba569720d95f958
data/.travis.yml CHANGED
@@ -4,7 +4,7 @@ rvm:
4
4
  - 2.0.0
5
5
  - 2.1.0
6
6
  - rbx-2.2.10
7
- - rbx-2.3.0
7
+ #- rbx-2.3.0
8
8
  - jruby-19mode
9
9
  - ruby-head
10
10
  - jruby-head
data/lib/philotic.rb CHANGED
@@ -21,13 +21,13 @@ module Philotic
21
21
  end
22
22
 
23
23
  def self.initialize_named_queue!(queue_name, config)
24
- raise "ENV['PHILOTIC_INITIALIZE_NAMED_QUEUE'] must equal 'true' to run Philotic.initialize_named_queue!" unless ENV['PHILOTIC_INITIALIZE_NAMED_QUEUE'] == 'true'
24
+ raise 'Philotic::Config.initialize_named_queues must be true to run Philotic.initialize_named_queue!' unless Philotic::Config.initialize_named_queues
25
25
 
26
26
  Philotic.connect!
27
27
  queue_exists = Philotic::Connection.connection.queue_exists? queue_name
28
28
 
29
- should_delete_queue = queue_exists && ENV['PHILOTIC_DELETE_EXISTING_QUEUE'] == 'true'
30
- should_create_queue = !queue_exists || ENV['PHILOTIC_DELETE_EXISTING_QUEUE'] == 'true'
29
+ should_delete_queue = queue_exists && Philotic::Config.delete_existing_queues
30
+ should_create_queue = !queue_exists || Philotic::Config.delete_existing_queues
31
31
 
32
32
  if should_delete_queue
33
33
  Philotic::Connection.channel.queue(queue_name, passive: true).delete
@@ -39,7 +39,7 @@ module Philotic
39
39
  queue = queue_from_config(queue_name, config)
40
40
  bind_queue(queue, config)
41
41
  else
42
- Philotic.logger.warn "Queue #{queue_name} not created; it already exists. ENV['PHILOTIC_DELETE_EXISTING_QUEUE'] must equal 'true' to override."
42
+ Philotic.logger.warn "Queue #{queue_name} not created; it already exists. Philotic::Config.delete_existing_queues must be true to override."
43
43
  end
44
44
  end
45
45
 
@@ -94,6 +94,10 @@ module Philotic
94
94
  def self.connect!
95
95
  Philotic::Connection.connect!
96
96
  end
97
+
98
+ def self.close
99
+ Philotic::Connection.close
100
+ end
97
101
  end
98
102
 
99
103
  require 'philotic/version'
@@ -11,41 +11,42 @@ module Philotic
11
11
 
12
12
  ENV_PREFIX = 'PHILOTIC'
13
13
 
14
- DEFAULT_DISABLE_PUBLISH = false
15
-
16
- DEFAULT_RABBIT_SCHEME = 'amqps'
17
- DEFAULT_RABBIT_HOST = 'localhost'
18
- DEFAULT_RABBIT_PORT = 5671
19
- DEFAULT_RABBIT_USER = 'guest'
20
- DEFAULT_RABBIT_PASSWORD = 'guest'
21
- DEFAULT_RABBIT_VHOST = '%2f' # '/'
22
- DEFAULT_RABBIT_URL = "#{DEFAULT_RABBIT_SCHEME}://#{DEFAULT_RABBIT_USER}:#{DEFAULT_RABBIT_PASSWORD}@#{DEFAULT_RABBIT_HOST}:#{DEFAULT_RABBIT_PORT}/#{DEFAULT_RABBIT_VHOST}"
23
- DEFAULT_EXCHANGE_NAME = 'philotic.headers'
24
- DEFAULT_TIMEOUT = 2
25
- DEFAULT_ROUTING_KEY = nil
26
- DEFAULT_PERSISTENT = true
14
+ DEFAULT_DISABLE_PUBLISH = false
15
+ DEFAULT_INITIALIZE_NAMED_QUEUES = false
16
+ DEFAULT_DELETE_EXISTING_QUEUES = false
17
+ DEFAULT_RABBIT_SCHEME = 'amqps'
18
+ DEFAULT_RABBIT_HOST = 'localhost'
19
+ DEFAULT_RABBIT_PORT = 5671
20
+ DEFAULT_RABBIT_USER = 'guest'
21
+ DEFAULT_RABBIT_PASSWORD = 'guest'
22
+ DEFAULT_RABBIT_VHOST = '%2f' # '/'
23
+ DEFAULT_RABBIT_URL = "#{DEFAULT_RABBIT_SCHEME}://#{DEFAULT_RABBIT_USER}:#{DEFAULT_RABBIT_PASSWORD}@#{DEFAULT_RABBIT_HOST}:#{DEFAULT_RABBIT_PORT}/#{DEFAULT_RABBIT_VHOST}"
24
+ DEFAULT_EXCHANGE_NAME = 'philotic.headers'
25
+ DEFAULT_TIMEOUT = 2
26
+ DEFAULT_ROUTING_KEY = nil
27
+ DEFAULT_PERSISTENT = true
27
28
  # DEFAULT_IMMEDIATE = false
28
- DEFAULT_MANDATORY = true
29
- DEFAULT_CONTENT_TYPE = nil
30
- DEFAULT_CONTENT_ENCODING = nil
31
- DEFAULT_PRIORITY = nil
32
- DEFAULT_MESSAGE_ID = nil
33
- DEFAULT_CORRELATION_ID = nil
34
- DEFAULT_REPLY_TO = nil
35
- DEFAULT_TYPE = nil
36
- DEFAULT_USER_ID = nil
37
- DEFAULT_APP_ID = nil
38
- DEFAULT_TIMESTAMP = nil
39
- DEFAULT_EXPIRATION = nil
29
+ DEFAULT_MANDATORY = true
30
+ DEFAULT_CONTENT_TYPE = nil
31
+ DEFAULT_CONTENT_ENCODING = nil
32
+ DEFAULT_PRIORITY = nil
33
+ DEFAULT_MESSAGE_ID = nil
34
+ DEFAULT_CORRELATION_ID = nil
35
+ DEFAULT_REPLY_TO = nil
36
+ DEFAULT_TYPE = nil
37
+ DEFAULT_USER_ID = nil
38
+ DEFAULT_APP_ID = nil
39
+ DEFAULT_TIMESTAMP = nil
40
+ DEFAULT_EXPIRATION = nil
40
41
 
41
42
  def defaults
42
43
  @defaults ||= Hash[Config.constants.select { |c| c.to_s.start_with? 'DEFAULT_' }.collect do |c|
43
- key = c.slice(8..-1).downcase.to_sym
44
+ key = c.slice(8..-1).downcase.to_sym
44
45
 
45
- env_key = "#{ENV_PREFIX}_#{key}".upcase
46
+ env_key = "#{ENV_PREFIX}_#{key}".upcase
46
47
 
47
- [key, ENV[env_key] || Config.const_get(c)]
48
- end
48
+ [key, ENV[env_key] || Config.const_get(c)]
49
+ end
49
50
  ]
50
51
  end
51
52
 
@@ -44,6 +44,8 @@ module Philotic
44
44
  def close
45
45
  Philotic.logger.info "closing connection to RabbitMQ; host:#{config.rabbit_host}"
46
46
  connection.close if connected?
47
+ @channel = nil
48
+ @exchange = nil
47
49
  end
48
50
 
49
51
  def connected?
@@ -1,3 +1,3 @@
1
1
  module Philotic
2
- VERSION = '0.2.3'
2
+ VERSION = '0.2.4'
3
3
  end
@@ -15,7 +15,6 @@ describe Philotic::Connection do
15
15
  expect(subject).to receive(:set_exchange_return_handler!)
16
16
 
17
17
  subject.connect!
18
-
19
18
  end
20
19
  end
21
20
 
@@ -27,7 +26,6 @@ describe Philotic::Connection do
27
26
  expect(Philotic.logger).to receive(:error)
28
27
 
29
28
  subject.connect!
30
-
31
29
  end
32
30
  end
33
31
  end
@@ -40,7 +38,6 @@ describe Philotic::Connection do
40
38
  expect(subject).not_to receive(:set_exchange_return_handler!)
41
39
 
42
40
  subject.connect!
43
-
44
41
  end
45
42
  end
46
43
  end
@@ -55,4 +52,16 @@ describe Philotic::Connection do
55
52
  Philotic::Connection.start_connection!
56
53
  end
57
54
  end
55
+
56
+ describe '.close' do
57
+ let(:connection) { double }
58
+ specify do
59
+ allow(Philotic::Connection).to receive(:connection).and_return(connection)
60
+ expect(connection).to receive(:connected?).and_return(true)
61
+ expect(connection).to receive(:close)
62
+ expect(Philotic::Connection.instance_variable_get(:@channel)).to eq(nil)
63
+ expect(Philotic::Connection.instance_variable_get(:@exchange)).to eq(nil)
64
+ Philotic::Connection.close
65
+ end
66
+ end
58
67
  end
@@ -2,12 +2,14 @@ require 'spec_helper'
2
2
  require 'philotic/dummy_event'
3
3
 
4
4
  describe Philotic::Publisher do
5
- before(:each) do
6
- @event = Philotic::DummyEvent.new
7
- @event.subject = 'Hello'
8
- @event.message = 'How are you?'
9
- @event.gender = :M
10
- @event.available = true
5
+ let(:event) do
6
+ event = Philotic::DummyEvent.new
7
+ event.subject = 'Hello'
8
+ event.message = 'How are you?'
9
+ event.gender = :M
10
+ event.available = true
11
+
12
+ event
11
13
  end
12
14
  let(:publisher) { Philotic::Publisher }
13
15
  subject { publisher }
@@ -21,6 +23,7 @@ describe Philotic::Publisher do
21
23
 
22
24
  describe 'publish' do
23
25
  it 'should call _publish with the right values' do
26
+ Timecop.freeze
24
27
  expect(subject).to receive(:_publish).with(
25
28
  {
26
29
  subject: 'Hello',
@@ -38,7 +41,7 @@ describe Philotic::Publisher do
38
41
  timestamp: Time.now.to_i
39
42
  }
40
43
  )
41
- subject.publish(@event)
44
+ subject.publish(event)
42
45
  end
43
46
 
44
47
  end
@@ -46,43 +49,46 @@ describe Philotic::Publisher do
46
49
  describe 'raw_publish' do
47
50
 
48
51
  it 'should call exchange.publish with the right values' do
52
+ Timecop.freeze
49
53
  exchange = double
50
54
  expect(Philotic::Connection).to receive(:exchange).and_return(exchange)
51
55
 
52
56
  expect(Philotic).to receive(:connect!)
53
57
  expect(Philotic::Connection).to receive(:connected?).and_return(true)
58
+ metadata = {
59
+ routing_key: nil,
60
+ persistent: true,
61
+ mandatory: true,
62
+ content_type: nil,
63
+ content_encoding: nil,
64
+ priority: nil,
65
+ message_id: nil,
66
+ correlation_id: nil,
67
+ reply_to: nil,
68
+ type: nil,
69
+ user_id: nil,
70
+ app_id: nil,
71
+ expiration: nil,
72
+ headers: {
73
+ philotic_firehose: true,
74
+ philotic_product: nil,
75
+ philotic_component: nil,
76
+ philotic_event_type: nil,
77
+ gender: :M,
78
+ available: true
79
+ },
80
+ timestamp: Time.now.to_i
81
+ }
82
+
54
83
 
55
84
  expect(exchange).to receive(:publish).with(
56
85
  {
57
86
  subject: 'Hello',
58
87
  message: 'How are you?'
59
88
  }.to_json,
60
- {
61
- routing_key: nil,
62
- persistent: true,
63
- mandatory: true,
64
- content_type: nil,
65
- content_encoding: nil,
66
- priority: nil,
67
- message_id: nil,
68
- correlation_id: nil,
69
- reply_to: nil,
70
- type: nil,
71
- user_id: nil,
72
- app_id: nil,
73
- expiration: nil,
74
- headers: {
75
- philotic_firehose: true,
76
- philotic_product: nil,
77
- philotic_component: nil,
78
- philotic_event_type: nil,
79
- gender: :M,
80
- available: true
81
- },
82
- timestamp: Time.now.to_i
83
- }
89
+ metadata
84
90
  )
85
- subject.publish(@event)
91
+ subject.publish(event)
86
92
  end
87
93
 
88
94
  it 'should log an error when there is no connection' do
@@ -92,7 +98,7 @@ describe Philotic::Publisher do
92
98
  expect(Philotic::Connection).to receive(:connected?).once.and_return(false)
93
99
 
94
100
  expect(Philotic.logger).to receive(:error)
95
- subject.publish(@event)
101
+ subject.publish(event)
96
102
  end
97
103
 
98
104
  end
@@ -24,17 +24,19 @@ describe Philotic do
24
24
  }
25
25
  }
26
26
  end
27
- it "should throw an error when ENV['PHILOTIC_INITIALIZE_NAMED_QUEUE'] is not set to 'true'" do
28
- ENV['PHILOTIC_INITIALIZE_NAMED_QUEUE'] = nil
27
+ it 'should throw an error when Philotic::Config.initialize_named_queues is falsey' do
28
+ allow(Philotic::Config).to receive(:initialize_named_queues).and_return(nil)
29
29
  queue_name = test_queues.keys.first
30
30
  config = test_queues[queue_name]
31
31
  expect(Philotic).not_to receive(:connect!)
32
- expect { Philotic.initialize_named_queue! queue_name, config }.to raise_error("ENV['PHILOTIC_INITIALIZE_NAMED_QUEUE'] must equal 'true' to run Philotic.initialize_named_queue!")
32
+ expect { Philotic.initialize_named_queue! queue_name, config }.to raise_error
33
33
 
34
34
  end
35
35
 
36
- it "should log a warning when ENV['PHILOTIC_DELETE_EXISTING_QUEUE'] is not set to 'true' and the queue already exists" do
37
- ENV['PHILOTIC_INITIALIZE_NAMED_QUEUE'] = 'true'
36
+ it 'should log a warning when Philotic::Config.delete_existing_queues is falsey and the queue already exists' do
37
+ allow(Philotic::Config).to receive(:initialize_named_queues).and_return(true)
38
+ allow(Philotic::Config).to receive(:delete_existing_queues).and_return(nil)
39
+
38
40
  test_queues.each_pair do |queue_name, config|
39
41
 
40
42
  connection = double
@@ -49,9 +51,9 @@ describe Philotic do
49
51
  end
50
52
  end
51
53
 
52
- it "should delete the queue first when ENV['PHILOTIC_DELETE_EXISTING_QUEUE'] is set to 'true' and the queue already exists" do
53
- ENV['PHILOTIC_INITIALIZE_NAMED_QUEUE'] = 'true'
54
- ENV['PHILOTIC_DELETE_EXISTING_QUEUE'] = 'true'
54
+ it 'should delete the queue first when Philotic::Config.delete_existing_queues is truthy and the queue already exists' do
55
+ allow(Philotic::Config).to receive(:initialize_named_queues).and_return(true)
56
+ allow(Philotic::Config).to receive(:delete_existing_queues).and_return(true)
55
57
 
56
58
  test_queues.each_pair do |queue_name, config|
57
59
 
data/spec/spec_helper.rb CHANGED
@@ -26,6 +26,5 @@ RSpec.configure do |config|
26
26
  config.after do
27
27
  Timecop.return
28
28
  end
29
-
30
29
  end
31
30
  Philotic.logger = Logger.new("/dev/null")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: philotic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Keyes
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2014-12-16 00:00:00 Z
12
+ date: 2014-12-18 00:00:00 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: codeclimate-test-reporter