artsy-eventservice 1.0.4 → 1.0.5

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: 730a1c3e93fc39daa432c14e98e4d3e470bd21d5
4
- data.tar.gz: b91155920aa1d4d24d9c1c96e1b13cb822a121ca
3
+ metadata.gz: b78e01513fda0bf9edb4839c1996d5a55c59d422
4
+ data.tar.gz: 528d6a8bc07e57a6c157d80ea7af6f87ee2dc732
5
5
  SHA512:
6
- metadata.gz: 26960c9c97661ea5bba215c7863f78162713e975ea60917527d0d6a3ba8fb6809a94ce1d34c7f9f2e6770aa07e628a4f950aacffd7cd089f3e7364b61eddc726
7
- data.tar.gz: e4a4eddb337a77cba72ed97d39c9f06225ea42c40ffa34e92ffd6dc0d417a60582e7135387b9e2a04633aee652241a30f5c578bd48388b3f2121dd2bb730f29e
6
+ metadata.gz: c2df6cb05beab94d16aa9015fcca729fd8d5ce354feeab6ce8e3243dd331adc5d619578267810bf123ebf96a560469072a87bddf41bd5db2ff9580ec72e369f6
7
+ data.tar.gz: d865174232877df38968b9a963f84d4159dfae91c379b9df87b016e3829369c9d1f639759ffc2e6d9e0c2090d8d895f0981a0e1d6737a0c740a5746df4d5d6fb
data/Gemfile CHANGED
@@ -8,7 +8,7 @@ gem 'rake'
8
8
  gem 'bunny' # for producing/consuming evets from RabbitMQ
9
9
 
10
10
  group :development do
11
- gem 'rubocop', '~> 0.47.1', require: false
11
+ gem 'rubocop', '~> 0.48', require: false
12
12
  gem 'pry-nav'
13
13
  gem 'pry-stack_explorer'
14
14
  gem 'pry-rescue'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- artsy-eventservice (1.0.4)
4
+ artsy-eventservice (1.0.5)
5
5
  bunny (~> 2.7.1)
6
6
 
7
7
  GEM
@@ -18,8 +18,9 @@ GEM
18
18
  diff-lcs (1.2.5)
19
19
  interception (0.5)
20
20
  method_source (0.8.2)
21
- parser (2.4.0.0)
22
- ast (~> 2.2)
21
+ parallel (1.12.1)
22
+ parser (2.4.0.2)
23
+ ast (~> 2.3)
23
24
  powerpack (0.1.1)
24
25
  pry (0.10.4)
25
26
  coderay (~> 1.1.0)
@@ -33,8 +34,8 @@ GEM
33
34
  pry-stack_explorer (0.4.9.2)
34
35
  binding_of_caller (>= 0.7)
35
36
  pry (>= 0.9.11)
36
- rainbow (2.2.1)
37
- rake (12.0.0)
37
+ rainbow (3.0.0)
38
+ rake (12.3.0)
38
39
  rspec (3.5.0)
39
40
  rspec-core (~> 3.5.0)
40
41
  rspec-expectations (~> 3.5.0)
@@ -48,15 +49,16 @@ GEM
48
49
  diff-lcs (>= 1.2.0, < 2.0)
49
50
  rspec-support (~> 3.5.0)
50
51
  rspec-support (3.5.0)
51
- rubocop (0.47.1)
52
- parser (>= 2.3.3.1, < 3.0)
52
+ rubocop (0.52.1)
53
+ parallel (~> 1.10)
54
+ parser (>= 2.4.0.2, < 3.0)
53
55
  powerpack (~> 0.1)
54
- rainbow (>= 1.99.1, < 3.0)
56
+ rainbow (>= 2.2.2, < 4.0)
55
57
  ruby-progressbar (~> 1.7)
56
58
  unicode-display_width (~> 1.0, >= 1.0.1)
57
- ruby-progressbar (1.8.1)
59
+ ruby-progressbar (1.9.0)
58
60
  slop (3.6.0)
59
- unicode-display_width (1.1.3)
61
+ unicode-display_width (1.3.0)
60
62
 
61
63
  PLATFORMS
62
64
  ruby
@@ -70,10 +72,10 @@ DEPENDENCIES
70
72
  rake
71
73
  rspec
72
74
  rspec-mocks
73
- rubocop (~> 0.47.1)
75
+ rubocop (~> 0.48)
74
76
 
75
77
  RUBY VERSION
76
78
  ruby 2.3.0p0
77
79
 
78
80
  BUNDLED WITH
79
- 1.15.4
81
+ 1.16.1
@@ -2,9 +2,16 @@
2
2
  # frozen_string_literal: true
3
3
  module Artsy
4
4
  module EventService
5
+
6
+ # Post data without an event, data must be a string.
7
+ def self.post_data(topic:, data:, routing_key: nil)
8
+ return unless event_stream_enabled?
9
+ Publisher.publish_data(topic: topic, data: data, routing_key: routing_key)
10
+ end
11
+
5
12
  def self.post_event(topic:, event:, routing_key: nil)
6
13
  return unless event_stream_enabled?
7
- Publisher.publish(topic: topic, event: event, routing_key: routing_key || event.routing_key)
14
+ Publisher.publish_event(topic: topic, event: event, routing_key: routing_key || event.routing_key)
8
15
  end
9
16
 
10
17
  def self.consume(**args)
@@ -2,26 +2,37 @@
2
2
  module Artsy
3
3
  module EventService
4
4
  class Publisher
5
- def self.publish(topic:, event:, routing_key: nil)
5
+ def self.publish_event(topic:, event:, routing_key: nil)
6
6
  new.post_event(topic: topic, event: event, routing_key: routing_key)
7
7
  end
8
8
 
9
- def post_event(topic:, event:, routing_key: nil)
10
- raise 'Event missing topic or verb.' if event.verb.to_s.empty? || topic.to_s.empty?
9
+ def self.publish_data(topic:, data:, routing_key: nil)
10
+ new.post_data(topic: topic, data: data, routing_key: routing_key)
11
+ end
12
+
13
+ def post_data(topic:, data:, routing_key: nil)
11
14
  RabbitMQConnection.get_channel do |channel|
12
15
  channel.confirm_select if config.confirms_enabled
13
16
  exchange = channel.topic(topic, durable: true)
14
17
  exchange.publish(
15
- event.json,
16
- routing_key: routing_key || event.verb,
18
+ data,
19
+ routing_key: routing_key,
17
20
  persistent: true,
18
21
  content_type: 'application/json',
19
22
  app_id: config.app_name
20
23
  )
21
- raise 'Publishing event failed' if config.confirms_enabled && !channel.wait_for_confirms
24
+ raise 'Publishing data failed' if config.confirms_enabled && !channel.wait_for_confirms
22
25
  end
23
26
  end
24
27
 
28
+ def post_event(topic:, event:, routing_key: nil)
29
+ raise 'Event missing topic or verb.' if event.verb.to_s.empty? || topic.to_s.empty?
30
+ post_data(
31
+ topic: topic,
32
+ data: event.json,
33
+ routing_key: routing_key || event.verb)
34
+ end
35
+
25
36
  def config
26
37
  Artsy::EventService.config
27
38
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  module Artsy
3
3
  module EventService
4
- VERSION = '1.0.4'
4
+ VERSION = '1.0.5'
5
5
  end
6
6
  end
@@ -21,16 +21,23 @@ describe Artsy::EventService do
21
21
  allow(Artsy::EventService).to receive(:config).and_return(double(event_stream_enabled: true))
22
22
  end
23
23
  describe '.post_event' do
24
- it 'calls publish with proper params' do
25
- expect(Artsy::EventService::Publisher).to receive(:publish).with(topic: 'test', event: event, routing_key: 'test.passed')
24
+ it 'calls publish_event with proper params' do
25
+ expect(Artsy::EventService::Publisher).to receive(:publish_event).with(topic: 'test', event: event, routing_key: 'test.passed')
26
26
 
27
27
  Artsy::EventService.post_event(topic: 'test', event: event)
28
28
  end
29
29
  it 'calls publish with proper params with routing key' do
30
- expect(Artsy::EventService::Publisher).to receive(:publish).with(topic: 'test', event: event, routing_key: 'good.route')
30
+ expect(Artsy::EventService::Publisher).to receive(:publish_event).with(topic: 'test', event: event, routing_key: 'good.route')
31
31
 
32
32
  Artsy::EventService.post_event(topic: 'test', event: event, routing_key: 'good.route')
33
33
  end
34
34
  end
35
+ describe '.post_data' do
36
+ it 'calls publish_data with proper params' do
37
+ expect(Artsy::EventService::Publisher).to receive(:publish_data).with(topic: 'test', data: 'foo', routing_key: 'good.route')
38
+
39
+ Artsy::EventService.post_data(topic: 'test', data: 'foo', routing_key: 'good.route')
40
+ end
41
+ end
35
42
  end
36
43
  end
@@ -19,15 +19,15 @@ describe Artsy::EventService::Publisher do
19
19
 
20
20
  describe '.publish' do
21
21
  it 'fails when topic is empty' do
22
- expect { Artsy::EventService::Publisher.publish(topic: nil, event: event) }.to raise_error 'Event missing topic or verb.'
22
+ expect { Artsy::EventService::Publisher.publish_event(topic: nil, event: event) }.to raise_error 'Event missing topic or verb.'
23
23
  end
24
24
  it 'fails when event.verb is empty' do
25
25
  allow(event).to receive(:verb).and_return('')
26
- expect { Artsy::EventService::Publisher.publish(topic: 'test', event: event) }.to raise_error 'Event missing topic or verb.'
26
+ expect { Artsy::EventService::Publisher.publish_event(topic: 'test', event: event) }.to raise_error 'Event missing topic or verb.'
27
27
  end
28
28
  it 'fails when event.verb is nil' do
29
29
  allow(event).to receive(:verb).and_return(nil)
30
- expect { Artsy::EventService::Publisher.publish(topic: 'test', event: event) }.to raise_error 'Event missing topic or verb.'
30
+ expect { Artsy::EventService::Publisher.publish_event(topic: 'test', event: event) }.to raise_error 'Event missing topic or verb.'
31
31
  end
32
32
  it 'uses verb as routing key when calling publish on the exchange without passing routing_key' do
33
33
  conn = double
@@ -48,7 +48,7 @@ describe Artsy::EventService::Publisher do
48
48
  content_type: 'application/json',
49
49
  app_id: 'artsy'
50
50
  )
51
- Artsy::EventService::Publisher.publish(topic: 'test', event: event)
51
+ Artsy::EventService::Publisher.publish_event(topic: 'test', event: event)
52
52
  end
53
53
  it 'uses verb as routing key when calling publish on the exchange without passing routing_key' do
54
54
  conn = double
@@ -69,7 +69,7 @@ describe Artsy::EventService::Publisher do
69
69
  content_type: 'application/json',
70
70
  app_id: 'artsy'
71
71
  )
72
- Artsy::EventService::Publisher.publish(topic: 'test', event: event, routing_key: 'good.route')
72
+ Artsy::EventService::Publisher.publish_event(topic: 'test', event: event, routing_key: 'good.route')
73
73
  end
74
74
  it 'raises an error if event publishing is unconfirmed' do
75
75
  conn = double
@@ -91,8 +91,8 @@ describe Artsy::EventService::Publisher do
91
91
  app_id: 'artsy'
92
92
  )
93
93
  expect do
94
- Artsy::EventService::Publisher.publish(topic: 'test', event: event, routing_key: 'good.route')
95
- end.to raise_error 'Publishing event failed'
94
+ Artsy::EventService::Publisher.publish_event(topic: 'test', event: event, routing_key: 'good.route')
95
+ end.to raise_error 'Publishing data failed'
96
96
  end
97
97
  end
98
98
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: artsy-eventservice
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ashkan Nasseri
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-06 00:00:00.000000000 Z
11
+ date: 2018-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bunny