philotic 0.8.1 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +7 -7
  2. data/.travis.yml +5 -6
  3. data/README.md +10 -13
  4. data/examples/creating_named_queues/manually.rb +4 -4
  5. data/examples/creating_named_queues/with_rake.rb +4 -1
  6. data/examples/publishing/publish.rb +14 -14
  7. data/examples/simple_instance.rb +4 -4
  8. data/examples/simple_singleton.rb +3 -3
  9. data/examples/subscribing/acks.rb +6 -6
  10. data/examples/subscribing/anonymous_queue.rb +2 -2
  11. data/examples/subscribing/consumer.rb +47 -0
  12. data/examples/subscribing/multiple_named_queues.rb +4 -4
  13. data/examples/subscribing/named_queue.rb +3 -3
  14. data/lib/philotic.rb +2 -3
  15. data/lib/philotic/config.rb +1 -1
  16. data/lib/philotic/connection.rb +1 -0
  17. data/lib/philotic/constants.rb +1 -1
  18. data/lib/philotic/consumer.rb +93 -0
  19. data/lib/philotic/{dummy_event.rb → dummy_message.rb} +3 -3
  20. data/lib/philotic/logging.rb +1 -1
  21. data/lib/philotic/logging/logger.rb +6 -6
  22. data/lib/philotic/logging/{event.rb → message.rb} +2 -2
  23. data/lib/philotic/message.rb +146 -0
  24. data/lib/philotic/publisher.rb +24 -24
  25. data/lib/philotic/subscriber.rb +9 -12
  26. data/lib/philotic/version.rb +1 -1
  27. data/philotic.gemspec +8 -11
  28. data/philotic_queues.yml.example +8 -8
  29. data/spec/philotic/connection_spec.rb +2 -0
  30. data/spec/philotic/consumer_spec.rb +186 -0
  31. data/spec/philotic/logging/logger_spec.rb +15 -15
  32. data/spec/philotic/message_spec.rb +147 -0
  33. data/spec/philotic/publisher_spec.rb +39 -38
  34. data/spec/philotic/subscriber_spec.rb +6 -3
  35. metadata +173 -144
  36. data/lib/philotic/event.rb +0 -100
  37. data/lib/philotic/routable.rb +0 -98
  38. data/spec/philotic/event_spec.rb +0 -109
  39. data/spec/philotic/routable_spec.rb +0 -54
@@ -9,7 +9,7 @@ module Philotic
9
9
 
10
10
  end
11
11
  let(:logger) { Philotic::Logging::Logger.new(device) }
12
- let(:message) { 'Hey!' }
12
+ let(:expected_message) { 'Hey!' }
13
13
  let(:error_message) { "These are not the droids you're looking for" }
14
14
 
15
15
  before do
@@ -17,45 +17,45 @@ module Philotic
17
17
  end
18
18
  specify do
19
19
 
20
- expect(logger.connection).to receive(:publish) do |event|
21
- expect(event.message).to eq message
22
- expect(event.severity).to eq Logger::INFO
20
+ expect(logger.connection).to receive(:publish) do |message|
21
+ expect(message.message).to eq expected_message
22
+ expect(message.severity).to eq Logger::INFO
23
23
 
24
24
  end
25
25
 
26
26
  expect(device).to receive(:write) do |log_message|
27
- expect(log_message).to match /#{message}/
27
+ expect(log_message).to match /#{expected_message}/
28
28
  end
29
- logger.info message
29
+ logger.info expected_message
30
30
 
31
31
  end
32
32
 
33
33
  it 'should accept a block' do
34
- expect(logger.connection).to receive(:publish) do |event|
35
- expect(event.message).to eq message
36
- expect(event.severity).to eq Logger::INFO
34
+ expect(logger.connection).to receive(:publish) do |message|
35
+ expect(message.message).to eq expected_message
36
+ expect(message.severity).to eq Logger::INFO
37
37
 
38
38
  end
39
39
 
40
40
  expect(device).to receive(:write) do |log_message|
41
- expect(log_message).to match /#{message}/
41
+ expect(log_message).to match /#{expected_message}/
42
42
  end
43
- logger.info { message }
43
+ logger.info { expected_message }
44
44
  end
45
45
 
46
46
  it "should not die if it can't log to RabbitMQ" do
47
- expect(logger.connection).to receive(:publish) do |event|
47
+ expect(logger.connection).to receive(:publish) do |message|
48
48
  raise error_message
49
49
  end
50
50
 
51
51
  expect(device).to receive(:write) do |log_message|
52
- expect(log_message).to match /#{message}/
52
+ expect(log_message).to match /#{expected_message}/
53
53
  end
54
54
 
55
55
  expect(device).to receive(:write) do |log_message|
56
56
  expect(log_message).to match /#{error_message}/
57
57
  end
58
- logger.info message
58
+ logger.info expected_message
59
59
  end
60
60
 
61
61
  it 'should behave not log if the severity is too low' do
@@ -64,7 +64,7 @@ module Philotic
64
64
 
65
65
  expect(device).not_to receive(:write)
66
66
  logger.level = Logger::WARN
67
- logger.info message
67
+ logger.info expected_message
68
68
  end
69
69
  end
70
70
  end
@@ -0,0 +1,147 @@
1
+ require 'spec_helper'
2
+
3
+ require 'philotic/message'
4
+
5
+ # create 'deep' inheritance to test self.inherited
6
+ class TestEventParent < Philotic::Message
7
+ end
8
+ class TestEvent < TestEventParent
9
+ attr_routable :routable_attr
10
+ attr_payload :payload_attr
11
+ end
12
+
13
+ describe Philotic::Message do
14
+ let(:message) { TestEvent.new }
15
+ subject { message }
16
+
17
+ %w[
18
+ attr_routable_accessors
19
+ attr_routable
20
+ attr_payload_accessors
21
+ attr_payload
22
+ ].each do |method_name|
23
+ specify { expect(subject.class.methods).to include method_name.to_sym }
24
+ end
25
+
26
+ it 'should have proper headers' do
27
+ expect(subject.headers).to include({routable_attr: nil})
28
+ end
29
+
30
+ it 'should have proper payload' do
31
+ expect(subject.payload).to eq({payload_attr: nil})
32
+ end
33
+
34
+ it 'should have proper attributes' do
35
+ expect(subject.attributes).to include({routable_attr: nil, payload_attr: nil})
36
+ end
37
+
38
+ it 'should have empty metadata, other than timestamp' do
39
+ expect(subject.metadata.keys).to eq([:timestamp])
40
+ end
41
+
42
+ context 'overriding a value with metadata=' do
43
+ before do
44
+ subject.metadata = {mandatory: false}
45
+ end
46
+ it 'should work' do
47
+ expect(subject.metadata).to include({mandatory: false})
48
+ end
49
+ end
50
+
51
+ Philotic::Message.methods.sort.each do |method_name|
52
+ specify { expect(subject.class.methods).to include method_name.to_sym }
53
+ end
54
+
55
+ Philotic::MESSAGE_OPTIONS.each do |method_name|
56
+ specify { expect(subject.methods).to include method_name.to_sym }
57
+ specify { expect(subject.methods).to include "#{method_name}=".to_sym }
58
+ end
59
+
60
+ Philotic::PHILOTIC_HEADERS.each do |method_name|
61
+ specify { expect(subject.methods).to include method_name.to_sym }
62
+ specify { expect(subject.methods).to include "#{method_name}=".to_sym }
63
+ end
64
+
65
+ describe 'metadata' do
66
+ it 'should have a timestamp' do
67
+ Timecop.freeze
68
+ expect(subject.metadata).to eq(timestamp: Time.now.to_i)
69
+ end
70
+
71
+ it 'should reflect changes in the message properties' do
72
+ expect(subject.metadata[:app_id]).to eq nil
73
+ subject.app_id = 'ANSIBLE'
74
+ expect(subject.metadata[:app_id]).to eq 'ANSIBLE'
75
+ end
76
+ end
77
+ describe 'headers' do
78
+ it 'should include :philotic_product' do
79
+ expect(subject.headers.keys).to include :philotic_product
80
+ end
81
+ end
82
+
83
+ context 'generic message' do
84
+ let(:headers) do
85
+ {
86
+ header1: 'h1',
87
+ header2: 'h2',
88
+ header3: 'h3',
89
+ }
90
+ end
91
+
92
+ let(:payloads) do
93
+ {
94
+ payload1: 'h1',
95
+ payload2: 'h2',
96
+ payload3: 'h3',
97
+ }
98
+ end
99
+ it 'builds an message with dynamic headers and payloads' do
100
+ message = Philotic::Message.new(headers, payloads)
101
+
102
+ expect(message.headers).to include(headers)
103
+ expect(message.payload).to eq payloads
104
+
105
+ end
106
+ end
107
+
108
+ describe '#publish' do
109
+ subject { Philotic::Message.new }
110
+ specify do
111
+ expect(subject.connection).to receive(:publish).with(subject)
112
+
113
+ subject.publish
114
+ end
115
+
116
+ end
117
+
118
+ describe '.publish' do
119
+ let (:connection) { double }
120
+ let(:headers) do
121
+ {
122
+ header1: 'h1',
123
+ header2: 'h2',
124
+ header3: 'h3',
125
+ }
126
+ end
127
+
128
+ let(:payloads) do
129
+ {
130
+ payload1: 'h1',
131
+ payload2: 'h2',
132
+ payload3: 'h3',
133
+ }
134
+ end
135
+ subject { Philotic::Message }
136
+ specify do
137
+ expect_any_instance_of(Philotic::Message).to receive(:connection).and_return(connection)
138
+ expect(connection).to receive(:publish) do |message|
139
+ expect(message.headers).to include(headers)
140
+ expect(message.payload).to eq payloads
141
+ end
142
+
143
+ subject.publish(headers, payloads)
144
+ end
145
+
146
+ end
147
+ end
@@ -1,17 +1,18 @@
1
1
  require 'spec_helper'
2
- require 'philotic/dummy_event'
2
+
3
+ require 'philotic/dummy_message'
3
4
  require 'philotic/connection'
4
5
  require 'philotic/publisher'
5
6
 
6
7
  describe Philotic::Publisher do
7
- let(:event) do
8
- event = Philotic::DummyEvent.new
9
- event.subject = 'Hello'
10
- event.message = 'How are you?'
11
- event.gender = :M
12
- event.available = true
13
-
14
- event
8
+ let(:message) do
9
+ message = Philotic::DummyMessage.new
10
+ message.subject = 'Hello'
11
+ message.message = 'How are you?'
12
+ message.hue = :M
13
+ message.available = true
14
+
15
+ message
15
16
  end
16
17
  let(:publisher) { Philotic::Connection.new.publisher }
17
18
  subject { publisher }
@@ -27,19 +28,19 @@ describe Philotic::Publisher do
27
28
  },
28
29
  {
29
30
  headers: {
30
- philotic_firehose: true,
31
- philotic_product: nil,
32
- philotic_component: nil,
33
- philotic_event_type: nil,
34
- gender: :M,
35
- available: true
31
+ philotic_firehose: true,
32
+ philotic_product: nil,
33
+ philotic_component: nil,
34
+ philotic_message_type: nil,
35
+ hue: :M,
36
+ available: true,
36
37
  },
37
38
  timestamp: Time.now.to_i
38
39
  }
39
40
  )
40
- expect(event).to_not be_published
41
- subject.publish(event)
42
- expect(event).to_not be_published # not connected
41
+ expect(message).to_not be_published
42
+ subject.publish(message)
43
+ expect(message).to_not be_published # not connected
43
44
  end
44
45
 
45
46
  it 'should fail gracefully' do
@@ -48,10 +49,10 @@ describe Philotic::Publisher do
48
49
  end
49
50
 
50
51
  expect(subject.logger).to receive(:error).with(publish_error.message)
51
- expect(event).to_not be_published
52
- subject.publish(event)
53
- expect(event).to_not be_published
54
- expect(event.publish_error).to eq publish_error
52
+ expect(message).to_not be_published
53
+ subject.publish(message)
54
+ expect(message).to_not be_published
55
+ expect(message.publish_error).to eq publish_error
55
56
 
56
57
  end
57
58
 
@@ -60,11 +61,11 @@ describe Philotic::Publisher do
60
61
  subject.config.disable_publish = true
61
62
  end
62
63
  it 'should log a warning' do
63
- expect(subject).to receive(:log_event_published)
64
+ expect(subject).to receive(:log_message_published)
64
65
 
65
- expect(event).to_not be_published
66
- subject.publish(event)
67
- expect(event).to_not be_published
66
+ expect(message).to_not be_published
67
+ subject.publish(message)
68
+ expect(message).to_not be_published
68
69
  end
69
70
  end
70
71
  end
@@ -94,12 +95,12 @@ describe Philotic::Publisher do
94
95
  app_id: nil,
95
96
  expiration: nil,
96
97
  headers: {
97
- philotic_firehose: true,
98
- philotic_product: nil,
99
- philotic_component: nil,
100
- philotic_event_type: nil,
101
- gender: :M,
102
- available: true
98
+ philotic_firehose: true,
99
+ philotic_product: nil,
100
+ philotic_component: nil,
101
+ philotic_message_type: nil,
102
+ hue: :M,
103
+ available: true,
103
104
  },
104
105
  timestamp: Time.now.to_i
105
106
  }
@@ -112,9 +113,9 @@ describe Philotic::Publisher do
112
113
  }.to_json,
113
114
  metadata
114
115
  )
115
- expect(event).to_not be_published
116
- subject.publish(event)
117
- expect(event).to be_published
116
+ expect(message).to_not be_published
117
+ subject.publish(message)
118
+ expect(message).to be_published
118
119
  end
119
120
 
120
121
  it 'should log an error when there is no connection' do
@@ -123,9 +124,9 @@ describe Philotic::Publisher do
123
124
  expect(subject.connection).to receive(:connected?).once.and_return(false)
124
125
 
125
126
  expect(subject.logger).to receive(:error)
126
- expect(event).to_not be_published
127
- subject.publish(event)
128
- expect(event).to_not be_published
127
+ expect(message).to_not be_published
128
+ subject.publish(message)
129
+ expect(message).to_not be_published
129
130
  end
130
131
 
131
132
  end
@@ -1,5 +1,6 @@
1
1
  require 'spec_helper'
2
- require 'philotic/dummy_event'
2
+
3
+ require 'philotic/dummy_message'
3
4
  require 'philotic/connection'
4
5
  require 'philotic/constants'
5
6
  require 'philotic/subscriber'
@@ -91,11 +92,12 @@ describe Philotic::Subscriber do
91
92
  let(:channel) { double }
92
93
  let(:delivery_tag) { double }
93
94
  let(:delivery_info) { double }
94
- let(:message) { {delivery_info: delivery_info} }
95
+ let(:message) { Philotic::Message.new }
95
96
  subject { Philotic::Connection.new.subscriber }
96
97
 
97
98
  specify do
98
99
  expect(subject.connection).to receive(:channel).and_return(channel)
100
+ expect(message).to receive(:delivery_info).and_return(delivery_info)
99
101
  expect(delivery_info).to receive(:delivery_tag).and_return(delivery_tag)
100
102
  expect(channel).to receive(:acknowledge).with(delivery_tag, false)
101
103
  subject.acknowledge(message)
@@ -106,11 +108,12 @@ describe Philotic::Subscriber do
106
108
  let(:channel) { double }
107
109
  let(:delivery_tag) { double }
108
110
  let(:delivery_info) { double }
109
- let(:message) { {delivery_info: delivery_info} }
111
+ let(:message) { Philotic::Message.new }
110
112
  subject { Philotic::Connection.new.subscriber }
111
113
 
112
114
  specify do
113
115
  expect(subject.connection).to receive(:channel).and_return(channel)
116
+ expect(message).to receive(:delivery_info).and_return(delivery_info)
114
117
  expect(delivery_info).to receive(:delivery_tag).and_return(delivery_tag)
115
118
  expect(channel).to receive(:reject).with(delivery_tag, true)
116
119
  subject.reject(message)
metadata CHANGED
@@ -1,166 +1,193 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: philotic
3
- version: !ruby/object:Gem::Version
4
- version: 0.8.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Nathan Keyes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
-
12
- date: 2015-05-07 00:00:00 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
11
+ date: 2015-06-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
15
14
  name: codeclimate-test-reporter
16
- prerelease: false
17
- requirement: &id001 !ruby/object:Gem::Requirement
18
- requirements:
19
- - &id009
20
- - ">="
21
- - !ruby/object:Gem::Version
22
- version: "0"
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
23
20
  type: :development
24
- version_requirements: *id001
25
- - !ruby/object:Gem::Dependency
26
- name: bundler
27
21
  prerelease: false
28
- requirement: &id002 !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ~>
31
- - &id015 !ruby/object:Gem::Version
32
- version: "1.6"
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '1.6'
33
34
  type: :development
34
- version_requirements: *id002
35
- - !ruby/object:Gem::Dependency
36
- name: evented-spec
37
35
  prerelease: false
38
- requirement: &id003 !ruby/object:Gem::Requirement
39
- requirements:
40
- - - ~>
41
- - !ruby/object:Gem::Version
42
- version: "0.9"
43
- type: :development
44
- version_requirements: *id003
45
- - !ruby/object:Gem::Dependency
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '1.6'
41
+ - !ruby/object:Gem::Dependency
46
42
  name: pry
47
- prerelease: false
48
- requirement: &id004 !ruby/object:Gem::Requirement
49
- requirements:
50
- - - ~>
51
- - !ruby/object:Gem::Version
52
- version: "0.10"
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0.10'
53
48
  type: :development
54
- version_requirements: *id004
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
49
  prerelease: false
58
- requirement: &id005 !ruby/object:Gem::Requirement
59
- requirements:
60
- - - ~>
61
- - !ruby/object:Gem::Version
62
- version: "10.3"
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0.10'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '10.3'
63
62
  type: :development
64
- version_requirements: *id005
65
- - !ruby/object:Gem::Dependency
66
- name: rspec
67
63
  prerelease: false
68
- requirement: &id006 !ruby/object:Gem::Requirement
69
- requirements:
70
- - - ~>
71
- - !ruby/object:Gem::Version
72
- version: "3.1"
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '10.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '3.1'
73
76
  type: :development
74
- version_requirements: *id006
75
- - !ruby/object:Gem::Dependency
76
- name: rspec-its
77
77
  prerelease: false
78
- requirement: &id007 !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ~>
81
- - !ruby/object:Gem::Version
82
- version: "1.1"
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '3.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-its
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '1.1'
83
90
  type: :development
84
- version_requirements: *id007
85
- - !ruby/object:Gem::Dependency
86
- name: timecop
87
91
  prerelease: false
88
- requirement: &id008 !ruby/object:Gem::Requirement
89
- requirements:
90
- - - ~>
91
- - !ruby/object:Gem::Version
92
- version: "0.7"
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '1.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: timecop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0.7'
93
104
  type: :development
94
- version_requirements: *id008
95
- - !ruby/object:Gem::Dependency
96
- name: simplecov
97
105
  prerelease: false
98
- requirement: &id010 !ruby/object:Gem::Requirement
99
- requirements:
100
- - *id009
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0.7'
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
101
118
  type: :development
102
- version_requirements: *id010
103
- - !ruby/object:Gem::Dependency
104
- name: activesupport
105
119
  prerelease: false
106
- requirement: &id011 !ruby/object:Gem::Requirement
107
- requirements:
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
108
122
  - - ">="
109
- - &id012 !ruby/object:Gem::Version
110
- version: "3.2"
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: activesupport
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '3.2'
111
132
  type: :runtime
112
- version_requirements: *id011
113
- - !ruby/object:Gem::Dependency
114
- name: activerecord
115
133
  prerelease: false
116
- requirement: &id013 !ruby/object:Gem::Requirement
117
- requirements:
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
118
136
  - - ">="
119
- - *id012
120
- type: :runtime
121
- version_requirements: *id013
122
- - !ruby/object:Gem::Dependency
137
+ - !ruby/object:Gem::Version
138
+ version: '3.2'
139
+ - !ruby/object:Gem::Dependency
123
140
  name: awesome_print
124
- prerelease: false
125
- requirement: &id014 !ruby/object:Gem::Requirement
126
- requirements:
127
- - - ~>
128
- - !ruby/object:Gem::Version
129
- version: "1.2"
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '1.2'
130
146
  type: :runtime
131
- version_requirements: *id014
132
- - !ruby/object:Gem::Dependency
133
- name: bunny
134
147
  prerelease: false
135
- requirement: &id016 !ruby/object:Gem::Requirement
136
- requirements:
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
137
150
  - - ">="
138
- - *id015
151
+ - !ruby/object:Gem::Version
152
+ version: '1.2'
153
+ - !ruby/object:Gem::Dependency
154
+ name: bunny
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '1.6'
139
160
  type: :runtime
140
- version_requirements: *id016
141
- - !ruby/object:Gem::Dependency
142
- name: json
143
161
  prerelease: false
144
- requirement: &id017 !ruby/object:Gem::Requirement
145
- requirements:
146
- - - ~>
147
- - !ruby/object:Gem::Version
148
- version: "1.8"
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '1.6'
167
+ - !ruby/object:Gem::Dependency
168
+ name: json
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '1.8'
149
174
  type: :runtime
150
- version_requirements: *id017
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '1.8'
151
181
  description: Lightweight, opinionated wrapper for using RabbitMQ headers exchanges
152
- email:
182
+ email:
153
183
  - nkeyes@gmail.com
154
184
  executables: []
155
-
156
185
  extensions: []
157
-
158
186
  extra_rdoc_files: []
159
-
160
- files:
161
- - .gitignore
162
- - .rspec
163
- - .travis.yml
187
+ files:
188
+ - ".gitignore"
189
+ - ".rspec"
190
+ - ".travis.yml"
164
191
  - Gemfile
165
192
  - LICENSE
166
193
  - README.md
@@ -172,19 +199,20 @@ files:
172
199
  - examples/simple_singleton.rb
173
200
  - examples/subscribing/acks.rb
174
201
  - examples/subscribing/anonymous_queue.rb
202
+ - examples/subscribing/consumer.rb
175
203
  - examples/subscribing/multiple_named_queues.rb
176
204
  - examples/subscribing/named_queue.rb
177
205
  - lib/philotic.rb
178
206
  - lib/philotic/config.rb
179
207
  - lib/philotic/connection.rb
180
208
  - lib/philotic/constants.rb
181
- - lib/philotic/dummy_event.rb
182
- - lib/philotic/event.rb
209
+ - lib/philotic/consumer.rb
210
+ - lib/philotic/dummy_message.rb
183
211
  - lib/philotic/logging.rb
184
- - lib/philotic/logging/event.rb
185
212
  - lib/philotic/logging/logger.rb
213
+ - lib/philotic/logging/message.rb
214
+ - lib/philotic/message.rb
186
215
  - lib/philotic/publisher.rb
187
- - lib/philotic/routable.rb
188
216
  - lib/philotic/singleton.rb
189
217
  - lib/philotic/subscriber.rb
190
218
  - lib/philotic/tasks.rb
@@ -196,44 +224,45 @@ files:
196
224
  - repl
197
225
  - spec/philotic/config_spec.rb
198
226
  - spec/philotic/connection_spec.rb
199
- - spec/philotic/event_spec.rb
227
+ - spec/philotic/consumer_spec.rb
200
228
  - spec/philotic/logging/logger_spec.rb
229
+ - spec/philotic/message_spec.rb
201
230
  - spec/philotic/publisher_spec.rb
202
- - spec/philotic/routable_spec.rb
203
231
  - spec/philotic/subscriber_spec.rb
204
232
  - spec/philotic_spec.rb
205
233
  - spec/spec_helper.rb
206
234
  - tasks/bump.rake
207
235
  homepage: https://github.com/nkeyes/philotic
208
- licenses:
236
+ licenses:
209
237
  - MIT
210
238
  metadata: {}
211
-
212
239
  post_install_message:
213
240
  rdoc_options: []
214
-
215
- require_paths:
241
+ require_paths:
216
242
  - lib
217
- required_ruby_version: !ruby/object:Gem::Requirement
218
- requirements:
219
- - *id009
220
- required_rubygems_version: !ruby/object:Gem::Requirement
221
- requirements:
222
- - *id009
243
+ required_ruby_version: !ruby/object:Gem::Requirement
244
+ requirements:
245
+ - - ">="
246
+ - !ruby/object:Gem::Version
247
+ version: '0'
248
+ required_rubygems_version: !ruby/object:Gem::Requirement
249
+ requirements:
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ version: '0'
223
253
  requirements: []
224
-
225
254
  rubyforge_project:
226
- rubygems_version: 2.4.5
255
+ rubygems_version: 2.4.7
227
256
  signing_key:
228
257
  specification_version: 4
229
258
  summary: Lightweight, opinionated wrapper for using RabbitMQ headers exchanges
230
- test_files:
259
+ test_files:
231
260
  - spec/philotic/config_spec.rb
232
261
  - spec/philotic/connection_spec.rb
233
- - spec/philotic/event_spec.rb
262
+ - spec/philotic/consumer_spec.rb
234
263
  - spec/philotic/logging/logger_spec.rb
264
+ - spec/philotic/message_spec.rb
235
265
  - spec/philotic/publisher_spec.rb
236
- - spec/philotic/routable_spec.rb
237
266
  - spec/philotic/subscriber_spec.rb
238
267
  - spec/philotic_spec.rb
239
268
  - spec/spec_helper.rb