pwwka 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ab413d6cec5031e40f04a92fc87f117bfbab457d
4
- data.tar.gz: 0791952942b76c40e8106da29fcbc1ab3051b8d3
3
+ metadata.gz: 8cf3c8a949bbd8b4d824a31484de0349a16c79d9
4
+ data.tar.gz: 0f53407b75ed79d8cbd3d85cd5945e2a988edeba
5
5
  SHA512:
6
- metadata.gz: 12554c6f0ed97ba914939cd42f4e37856e9faf7164f74573af3f9f0138cabc7b3122d66827550118d049892067b833af4bf3250697208347e99a21da934d74e9
7
- data.tar.gz: e2beebd8979bde2f0846cc24888d6ac1bbf08e287a6aff9b6a40abd5518fa011664df4ccb226298ae9f389c58b8b6e9c5497ad4d53d4ab70e832c64e21b50b47
6
+ metadata.gz: 570f563f482b9992a0e9d55d8206ac74484d49ecfbc0d3b01d3819f5616f714b7e5f0203f21700a4b0011f6507daf06bc70dad7753a718430e51c99603f08b2d
7
+ data.tar.gz: 87786f3b94d21352bc2148708514eb8558d61edb3cfc80037a271ca8c69c50e9eb61fc5d22a3d2676615917469c5e1bacea5528243a2bd39315ea59317eaa2a1
data/Gemfile.lock CHANGED
@@ -1,12 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pwwka (0.0.2)
4
+ pwwka (0.1.0)
5
5
  activemodel
6
6
  activesupport
7
7
  bunny
8
8
  mono_logger
9
- sucker_punch
10
9
 
11
10
  GEM
12
11
  remote: https://www.rubygems.org/
@@ -24,8 +23,6 @@ GEM
24
23
  builder (3.2.2)
25
24
  bunny (1.4.0)
26
25
  amq-protocol (>= 1.9.2)
27
- celluloid (0.15.2)
28
- timers (~> 1.1.0)
29
26
  diff-lcs (1.2.5)
30
27
  i18n (0.6.11)
31
28
  json (1.8.1)
@@ -44,10 +41,7 @@ GEM
44
41
  rspec-mocks (3.0.4)
45
42
  rspec-support (~> 3.0.0)
46
43
  rspec-support (3.0.4)
47
- sucker_punch (1.1)
48
- celluloid (~> 0.15.2)
49
44
  thread_safe (0.3.4)
50
- timers (1.1.0)
51
45
  tzinfo (1.2.2)
52
46
  thread_safe (~> 0.1)
53
47
 
data/lib/pwwka.rb CHANGED
@@ -17,7 +17,6 @@ module Pwwka
17
17
  end
18
18
 
19
19
  require 'json'
20
- require 'sucker_punch'
21
20
  require 'active_support/inflector'
22
21
  require 'active_support/core_ext/module'
23
22
  require 'active_support/hash_with_indifferent_access'
@@ -1,27 +1,48 @@
1
1
  module Pwwka
2
+ # Primary interface for sending messages.
3
+ #
4
+ # Example:
5
+ #
6
+ # # Send a message, blowing up if there's any problem
7
+ # Pwwka::Transmitter.send_message!({ user_id: @user.id }, "users.user.activated")
8
+ #
9
+ # # Send a message, logging if there's any problem
10
+ # Pwwka::Transmitter.send_message_safely({ user_id: @user.id }, "users.user.activated")
2
11
  class Transmitter
3
12
 
4
13
  extend Pwwka::Logging
5
- include SuckerPunch::Job
14
+ include Pwwka::Logging
6
15
 
16
+ # Send an important message that must go through. This method allows any raised exception
17
+ # to pass through.
18
+ #
19
+ # payload:: Hash of what you'd like to include in your message
20
+ # routing_key:: String routing key for the message
21
+ #
22
+ # Returns true
23
+ #
24
+ # Raises any exception generated by the innerworkings of this library.
7
25
  def self.send_message!(payload, routing_key)
8
- new.async.send_message!(payload, routing_key)
9
- info "BACKGROUND AFTER Transmitting Message on #{routing_key} -> #{payload}"
26
+ new.send_message!(payload, routing_key)
27
+ info "AFTER Transmitting Message on #{routing_key} -> #{payload}"
10
28
  end
11
29
 
30
+ # Send a less important message that doesn't have to go through. This eats
31
+ # any `StandardError` and logs it, returning false rather than blowing up.
32
+ #
33
+ # payload:: Hash of what you'd like to include in your message
34
+ # routing_key:: String routing key for the message
35
+ #
36
+ # Returns true if the message was sent, false otherwise
12
37
  def self.send_message_safely(payload, routing_key)
13
- begin
14
- send_message!(payload, routing_key)
15
- rescue => e
16
- error "Error Transmitting Message on #{routing_key} -> #{payload}: #{e}"
17
- return false
18
- end
38
+ send_message!(payload, routing_key)
39
+ rescue => e
40
+ error "ERROR Transmitting Message on #{routing_key} -> #{payload}: #{e}"
41
+ false
19
42
  end
20
43
 
21
- # send message asynchronously using sucker_punch
22
- # call async.send_message!
23
44
  def send_message!(payload, routing_key)
24
- self.class.info "BACKGROUND START Transmitting Message on #{routing_key} -> #{payload}"
45
+ info "START Transmitting Message on #{routing_key} -> #{payload}"
25
46
  channel_connector = ChannelConnector.new
26
47
  channel_connector.topic_exchange.publish(
27
48
  payload.to_json,
@@ -29,10 +50,8 @@ module Pwwka
29
50
  persistent: true)
30
51
  channel_connector.connection_close
31
52
  # if it gets this far it has succeeded
32
- self.class.info "BACKGROUND END Transmitting Message on #{routing_key} -> #{payload}"
33
- return true
53
+ info "END Transmitting Message on #{routing_key} -> #{payload}"
54
+ true
34
55
  end
35
-
36
56
  end
37
-
38
57
  end
data/lib/pwwka/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pwwka
2
- VERSION = '0.0.2'
2
+ VERSION = '0.1.0'
3
3
  end
data/pwwka.gemspec CHANGED
@@ -21,7 +21,6 @@ Gem::Specification.new do |s|
21
21
  s.add_dependency("bunny")
22
22
  s.add_dependency("activesupport")
23
23
  s.add_dependency("activemodel")
24
- s.add_dependency("sucker_punch")
25
24
  s.add_dependency("mono_logger")
26
25
  s.add_development_dependency("rake")
27
26
  s.add_development_dependency("rspec")
data/spec/spec_helper.rb CHANGED
@@ -1,13 +1,10 @@
1
1
  GEM_ROOT = File.expand_path(File.join(File.dirname(__FILE__),'..'))
2
2
  require 'pwwka'
3
3
  require 'pwwka/test_handler'
4
- require 'sucker_punch/testing/inline'
5
4
  Dir["#{GEM_ROOT}/spec/support/**/*.rb"].sort.each {|f| require f}
6
5
 
7
6
  RSpec.configure do |config|
8
7
 
9
- SuckerPunch.logger = nil
10
-
11
8
  config.expect_with :rspec do |c|
12
9
  c.syntax = :expect
13
10
  end
@@ -15,7 +15,7 @@ describe Pwwka::Transmitter do
15
15
  describe "#send_message!" do
16
16
 
17
17
  it "should send the correct payload" do
18
- success = Pwwka::Transmitter.new.async.send_message!(payload, routing_key)
18
+ success = Pwwka::Transmitter.new.send_message!(payload, routing_key)
19
19
  expect(success).to be_truthy
20
20
  received_payload = @test_handler.get_topic_message_payload_for_tests
21
21
  expect(received_payload["this"]).to eq("that")
@@ -24,7 +24,7 @@ describe Pwwka::Transmitter do
24
24
  it "should blow up if exception raised" do
25
25
  expect(Pwwka::ChannelConnector).to receive(:new).and_raise("blow up")
26
26
  expect {
27
- Pwwka::Transmitter.new.async.send_message!(payload, routing_key)
27
+ Pwwka::Transmitter.new.send_message!(payload, routing_key)
28
28
  }.to raise_error
29
29
  end
30
30
 
@@ -38,11 +38,6 @@ describe Pwwka::Transmitter do
38
38
  expect(received_payload["this"]).to eq("that")
39
39
  end
40
40
 
41
- it "should use sucker_punch to send the message in the background" do
42
- expect_any_instance_of(Pwwka::Transmitter).to receive(:send_message!).with(payload, routing_key).and_return(true)
43
- Pwwka::Transmitter.send_message!(payload, routing_key)
44
- end
45
-
46
41
  it "should blow up if exception raised" do
47
42
  expect(Pwwka::ChannelConnector).to receive(:new).and_raise("blow up")
48
43
  expect{
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwwka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stitch Fix Engineering
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-15 00:00:00.000000000 Z
11
+ date: 2014-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bunny
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: sucker_punch
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: mono_logger
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -163,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
149
  version: '0'
164
150
  requirements: []
165
151
  rubyforge_project:
166
- rubygems_version: 2.2.0
152
+ rubygems_version: 2.2.0.rc.1
167
153
  signing_key:
168
154
  specification_version: 4
169
155
  summary: Send and receive messages via RabbitMQ