superbolt 0.2.3 → 0.3.0

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: 9edf5a20e4fe7b10dc3d4a0ce51ba6db321733a3
4
- data.tar.gz: 8d46eb9f8f272c78813dadd3555831e130d02276
3
+ metadata.gz: 1f5e8511ce0d7491cf249678f90c650bdcbd78c0
4
+ data.tar.gz: 9e57a9143eb61aa617f2ae021a952f6ab5cf0143
5
5
  SHA512:
6
- metadata.gz: 77c29a55feed037520f3f456a1a309b7750493296640ea46f71c3b3174de13223122c0f0f1c116c4db58dd2976f0c686d552b69f15b5dee48c817526540229ff
7
- data.tar.gz: 019a6f7fff3af4a3b1d4543af28658d7c3ed5d620e09c9c2c99739c9af4ee75178638e87e00c07931f870212474ba07ff55b23da9834dfecb12792969d5a264b
6
+ metadata.gz: b03bdffeee9f4f2894b21486369990a2b8c919b5a4d75e319eb5d90b52baace03e1fc9bdc283b0615d5023a186e180e1ef41375226907675049024883aaa7a50
7
+ data.tar.gz: 27494bd318f971156714870eb6aca2213ecc3166440a5e47ce542de63740f30c543f632075e68a402a527e8199a75f98d239042340644f7990ed7532233b05b7
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Superbolt is an easy intra-app communication system for sending messages
6
6
  between applications. It is backed by RabbitMQ and under the covers it
7
- uses the Bunny gem.
7
+ uses both the Bunny gem and the AMQP gem.
8
8
 
9
9
  #### Why not just use those gems?
10
10
 
data/lib/superbolt.rb CHANGED
@@ -1,13 +1,15 @@
1
1
  require 'json'
2
2
 
3
3
  require 'bunny'
4
- require 'active_support/core_ext/module/delegation'
4
+ require 'amqp'
5
5
  require 'eventmachine'
6
+ require 'active_support/core_ext/module/delegation'
6
7
 
7
8
  require "superbolt/version"
8
9
  require "superbolt/config"
9
10
  require "superbolt/adapter/base"
10
11
  require "superbolt/adapter/bunny"
12
+ require "superbolt/adapter/amqp"
11
13
  require "superbolt/connection/base"
12
14
  require "superbolt/connection/queue"
13
15
  require "superbolt/connection/app"
@@ -0,0 +1,18 @@
1
+ module Superbolt
2
+ module Adapter
3
+ class AMQP < Base
4
+ def socket
5
+ @socket ||= ::AMQP.connect(config.connection_params)
6
+ end
7
+
8
+ def channel
9
+ @channel ||= ::AMQP::Channel.new(socket)
10
+ end
11
+
12
+ def close(&block)
13
+ socket.close(&block)
14
+ end
15
+ end
16
+ end
17
+ end
18
+
@@ -5,7 +5,6 @@ module Superbolt
5
5
 
6
6
  def initialize(config=nil)
7
7
  @config = config || Superbolt.config
8
- @channel = new_channel
9
8
  end
10
9
 
11
10
  delegate :closed?, :open, :open?,
@@ -17,6 +16,13 @@ module Superbolt
17
16
  @channel = nil
18
17
  response
19
18
  end
19
+
20
+ delegate :queues, :acknowledge, :reject, :queue,
21
+ to: :channel
22
+
23
+ def exchange
24
+ channel.default_exchange
25
+ end
20
26
  end
21
27
  end
22
28
  end
@@ -8,12 +8,8 @@ module Superbolt
8
8
  @socket
9
9
  end
10
10
 
11
- def new_channel
12
- socket.create_channel
13
- end
14
-
15
- def channel=(new_channel)
16
- @channel = new_channel
11
+ def channel
12
+ @channel ||= socket.create_channel
17
13
  end
18
14
  end
19
15
  end
data/lib/superbolt/app.rb CHANGED
@@ -19,7 +19,7 @@ module Superbolt
19
19
  end
20
20
 
21
21
  delegate :close, :closing, :exclusive?, :durable?, :auto_delete?,
22
- :channel, :q,
22
+ :writer, :channel, :q,
23
23
  to: :connection
24
24
 
25
25
  def queue
@@ -40,7 +40,7 @@ module Superbolt
40
40
 
41
41
  def run(&block)
42
42
  EventMachine.run do
43
- queue.subscribe(ack: false) do |metadata, properties, payload|
43
+ queue.subscribe(ack: false) do |metadata, payload|
44
44
  message = IncomingMessage.new(metadata, payload, channel)
45
45
  processor = Processor.new(message, logger, &block)
46
46
  unless processor.perform
@@ -48,9 +48,8 @@ module Superbolt
48
48
  end
49
49
  end
50
50
 
51
- quit_subscriber_queue.subscribe do |metadata, properties, payload|
52
- parsed_payload = JSON.parse(payload)
53
- quit(parsed_payload['message'])
51
+ quit_subscriber_queue.subscribe do |message|
52
+ quit(message)
54
53
  end
55
54
  end
56
55
  end
@@ -1,11 +1,20 @@
1
1
  module Superbolt
2
2
  class Config
3
3
  attr_reader :options
4
+ attr_writer :app_name, :env
4
5
 
5
6
  def initialize(options={})
6
7
  @options = options
7
8
  end
8
9
 
10
+ def app_name
11
+ @app_name ||= options[:app_name]
12
+ end
13
+
14
+ def env
15
+ @env ||= options[:env]
16
+ end
17
+
9
18
  def connection_params
10
19
  env_params || default
11
20
  end
@@ -2,19 +2,18 @@ module Superbolt
2
2
  module Connection
3
3
  class App < Base
4
4
  def connection
5
- CONNECTION
5
+ @connection ||= Adapter::AMQP.new(config)
6
6
  end
7
7
 
8
8
  def close(&block)
9
- channel.close
10
- @channel = nil
9
+ connection.close(&block)
10
+ @connection = nil
11
11
  @q = nil
12
12
  @qq = nil
13
- block.call
14
13
  end
15
14
 
16
15
  def qq
17
- @qq ||= channel.queue("#{name}.quit", self.class.default_options)
16
+ @qq ||= connection.queue("#{name}.quit", self.class.default_options)
18
17
  end
19
18
  end
20
19
  end
@@ -17,24 +17,16 @@ module Superbolt
17
17
  end
18
18
 
19
19
  def q
20
- @q ||= channel.queue(name, self.class.default_options)
20
+ @q ||= connection.queue(name, self.class.default_options)
21
21
  end
22
22
 
23
23
  delegate :exclusive?, :durable?, :auto_delete?,
24
24
  to: :q
25
25
 
26
26
  def channel
27
- return @channel if @channel.try(:open?)
28
- tries = 0
29
- begin
30
- @channel = connection.new_channel
31
- rescue ::Bunny::CommandInvalid # only happens if a channel is already open
32
- @channel.close
33
- tries += 1
34
- retry if tries < 2
35
- end
27
+ connection.channel
36
28
  end
37
-
29
+
38
30
  def self.default_options
39
31
  {
40
32
  :auto_delete => false,
@@ -2,12 +2,12 @@ module Superbolt
2
2
  module Connection
3
3
  class Queue < Base
4
4
  def connection
5
- CONNECTION
5
+ @connection ||= Adapter::Bunny.new(config)
6
6
  end
7
7
 
8
8
  def close
9
- channel.close
10
- @channel = nil
9
+ connection.close
10
+ @connection = nil
11
11
  @q = nil
12
12
  end
13
13
 
@@ -16,6 +16,11 @@ module Superbolt
16
16
  close
17
17
  response
18
18
  end
19
+
20
+ def writer
21
+ q # to make sure it is connected
22
+ connection.exchange
23
+ end
19
24
  end
20
25
  end
21
26
  end
@@ -1,7 +1,10 @@
1
1
  module Superbolt
2
2
 
3
3
  def self.config=(options)
4
- @config = Config.new(options)
4
+ @config = Config.new({
5
+ env: env,
6
+ app_name: app_name
7
+ }.merge(options))
5
8
  end
6
9
 
7
10
  def self.config
@@ -24,5 +27,4 @@ module Superbolt
24
27
  def self.message(args={})
25
28
  Superbolt::Messenger.new(args)
26
29
  end
27
- CONNECTION = Adapter::Bunny.new(config)
28
30
  end
@@ -1,6 +1,6 @@
1
1
  module Superbolt
2
2
  class Messenger
3
- attr_accessor :origin, :name, :event, :arguments, :env, :retry_time, :timeout, :live_queue
3
+ attr_accessor :origin, :name, :event, :arguments, :env
4
4
 
5
5
  def initialize(options={})
6
6
  @name = options.delete(:to)
@@ -8,8 +8,6 @@ module Superbolt
8
8
  @event = options.delete(:event) || self.class.defaultevent
9
9
  @env = Superbolt.env
10
10
  @arguments = options
11
- @retry_time = Superbolt.config.options[:retry_time] || 10
12
- @timeout = Superbolt.config.options[:timeout] || 60
13
11
  end
14
12
 
15
13
  def message
@@ -38,14 +36,6 @@ module Superbolt
38
36
  attr_chainer(:arguments, val)
39
37
  end
40
38
 
41
- def retry_after(val=nil)
42
- attr_chainer(:retry_time, val)
43
- end
44
-
45
- def timeout_after(val=nil)
46
- attr_chainer(:timeout, val)
47
- end
48
-
49
39
  def attr_chainer(attr, val)
50
40
  return send(attr) unless val
51
41
  self.send("#{attr}=", val)
@@ -60,12 +50,11 @@ module Superbolt
60
50
  queue.push(message)
61
51
  end
62
52
 
63
-
64
53
  def queue
65
54
  unless name
66
55
  raise "no destination app name defined, please pass one in"
67
56
  end
68
- @live_queue = Queue.new(destination_name)
57
+ Queue.new(destination_name)
69
58
  end
70
59
 
71
60
  def destination_name
@@ -12,36 +12,36 @@ module Superbolt
12
12
  end
13
13
 
14
14
  delegate :close, :closing, :exclusive?, :durable?, :auto_delete?,
15
- :channel, :q,
16
- to: :connection
15
+ :writer, :channel, :q,
16
+ to: :connection
17
17
 
18
18
  def push(message)
19
19
  closing do
20
- q.publish(message.to_json)
20
+ writer.publish(message.to_json, routing_key: name)
21
21
  end
22
22
  end
23
23
 
24
24
  def size
25
- q.message_count
25
+ closing do
26
+ q.message_count
27
+ end
26
28
  end
27
29
 
28
30
  def clear
29
- q.purge
31
+ closing do
32
+ q.purge
33
+ end
30
34
  end
31
35
 
32
36
  # TODO: roll up some of these subscribe methods
33
37
 
34
38
  def read
35
- current_size = size
36
39
  messages = []
37
40
  closing do
38
41
  q.subscribe(:ack => true) do |delivery_info, metadata, payload|
39
42
  message = IncomingMessage.new(delivery_info, payload, channel)
40
43
  messages << message
41
44
  end
42
- while messages.length < current_size
43
- true
44
- end
45
45
  end
46
46
  messages
47
47
  end
@@ -58,15 +58,15 @@ module Superbolt
58
58
 
59
59
  def pop
60
60
  closing do
61
- q.pop(ack: false) do |delivery_info, metadata, payload|
62
- message = IncomingMessage.new(delivery_info, payload, channel) if payload
61
+ q.pop do |delivery_info, metadata, message|
62
+ message = IncomingMessage.new(delivery_info, message, channel)
63
63
  message && message.parse
64
64
  end
65
65
  end
66
66
  end
67
67
 
68
68
  delegate :slice, :[],
69
- to: :all
69
+ to: :all
70
70
 
71
71
  def delete
72
72
  messages = []
@@ -79,11 +79,11 @@ module Superbolt
79
79
  message.ack
80
80
  end
81
81
  end
82
+
82
83
  # channel is closed by block before message ack can complete
83
84
  # therefore we must sleep :(
84
85
  sleep 0.02
85
86
  end
86
-
87
87
  messages
88
88
  end
89
89
  end
@@ -1,3 +1,3 @@
1
1
  module Superbolt
2
- VERSION = "0.2.3"
2
+ VERSION = "0.3.0"
3
3
  end
data/spec/app_spec.rb CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe Superbolt::App do
4
4
  let(:env) { 'test' }
5
5
  let(:name) { 'superbolt' }
6
- let(:logger) { Logger.new("/dev/null") }
6
+ let(:logger) { Logger.new('/dev/null') }
7
7
  let(:app) {
8
8
  Superbolt::App.new(name, {
9
9
  env: env,
@@ -24,6 +24,7 @@ describe Superbolt::App do
24
24
  describe '#run' do
25
25
  it "shuts down with any message to the quit queue" do
26
26
  queue.push({please: 'stop'})
27
+
27
28
  app.run do |arguments|
28
29
  quit_queue.push({message: 'just because'})
29
30
  end
data/spec/config_spec.rb CHANGED
@@ -9,6 +9,23 @@ describe Superbolt::Config do
9
9
  {}
10
10
  }
11
11
 
12
+ describe 'non connection configuration' do
13
+ let(:options) {
14
+ {
15
+ app_name: 'my_great_app',
16
+ env: 'staging'
17
+ }
18
+ }
19
+
20
+ it "should make the app name available" do
21
+ config.app_name.should == 'my_great_app'
22
+ end
23
+
24
+ it "should make the env available" do
25
+ config.env.should == 'staging'
26
+ end
27
+ end
28
+
12
29
  describe '#connection' do
13
30
  context "environmental variables" do
14
31
  context 'default behavior' do
@@ -33,7 +50,9 @@ describe Superbolt::Config do
33
50
  let(:old_value) { ENV['SOMEOTHERURL'] }
34
51
  let(:url) { 'http://someother-url.com' }
35
52
  let(:options) {
36
- {connection_key: 'SOMEOTHERURL'}
53
+ {
54
+ connection_key: 'SOMEOTHERURL'
55
+ }
37
56
  }
38
57
 
39
58
  before do
@@ -2,7 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe Superbolt::Adapter::Bunny do
4
4
  let(:connection) { Superbolt::Adapter::Bunny.new }
5
- let(:channel) { connection.new_channel }
6
5
 
7
6
  it "has an underlying open connection via Bunny" do
8
7
  connection.socket.should be_a Bunny::Session
@@ -10,15 +9,13 @@ describe Superbolt::Adapter::Bunny do
10
9
  connection.should be_open
11
10
  end
12
11
 
13
- describe 'new_channel' do
14
- it "creates a channel" do
15
- connection.new_channel.should be_a Bunny::Channel
16
- end
12
+ it "has a channel" do
13
+ connection.channel.should be_a Bunny::Channel
17
14
  end
18
15
 
19
16
  it "delegates queue creation to the channel" do
20
- queue = channel.queue('changelica')
17
+ queue = connection.queue('changelica')
21
18
  queue.should be_a Bunny::Queue
22
- channel.queues.keys.should include('changelica')
19
+ connection.queues.keys.should include('changelica')
23
20
  end
24
21
  end
@@ -78,64 +78,11 @@ describe Superbolt::Messenger do
78
78
  messenger.data({foo: 'bar'})
79
79
  messenger.data.should == {foo: 'bar'}
80
80
  end
81
-
82
- describe '#retry_time' do
83
- before do
84
- Superbolt.config.options[:retry_time] = nil
85
- end
86
-
87
- context 'config contains retry_time' do
88
- it 'returns config value' do
89
- Superbolt.config.options[:retry_time] = 12
90
- messenger.retry_after.should == 12
91
- end
92
- end
93
-
94
- context 'config does not contain retry_time but we pass it in' do
95
- it 'returns passed in value' do
96
- messenger.retry_after(11)
97
- messenger.retry_after.should == 11
98
- end
99
- end
100
-
101
- context 'config does not contain retry_time and we dont pass it in' do
102
- it 'returns default value' do
103
- messenger.retry_after.should == 10
104
- end
105
- end
106
- end
107
-
108
- describe '#retry_time' do
109
- before do
110
- Superbolt.config.options[:timeout] = nil
111
- end
112
-
113
- context 'config contains retry_time' do
114
- it 'returns config value' do
115
- Superbolt.config.options[:timeout] = 120
116
- messenger.timeout_after.should == 120
117
- end
118
- end
119
-
120
- context 'config does not contain retry_time but we pass it in' do
121
- it 'returns passed in value' do
122
- messenger.timeout_after(90)
123
- messenger.timeout_after.should == 90
124
- end
125
- end
126
-
127
- context 'config does not contain retry_time and we dont pass it in' do
128
- it 'returns default value' do
129
- messenger.timeout_after.should == 60
130
- end
131
- end
132
- end
133
81
  end
134
82
  end
135
83
 
136
84
  describe 'send!' do
137
85
  before do
138
- Superbolt.config.options[:retry_time] = 0
139
86
  messenger
140
87
  .to(name)
141
88
  .from('me')
data/spec/queue_spec.rb CHANGED
@@ -2,6 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe 'Superbolt::Queue' do
4
4
  let(:name) { 'superbolt_test' }
5
+ let(:connection) { Superbolt::Connection.new }
5
6
  let(:queue) { Superbolt::Queue.new(name) }
6
7
  let(:messages) { [] }
7
8
 
@@ -22,12 +23,13 @@ describe 'Superbolt::Queue' do
22
23
  describe 'queue/array operations' do
23
24
  let(:message) { {hello: 'insomniacs'} }
24
25
  let(:message_two) { {:hello => 'early birds'} }
26
+
25
27
  let(:decoded) { {'hello' => 'insomniacs'} }
26
28
  let(:decoded_two) { {'hello' => 'early birds'} }
27
29
 
28
30
  describe '#push' do
29
31
  let(:bunny_queue) {connection.queue(name, Superbolt::Queue.default_options)}
30
-
32
+
31
33
  it "writes to the queue" do
32
34
  queue.push(message)
33
35
  queue.size.should == 1
@@ -38,7 +40,7 @@ describe 'Superbolt::Queue' do
38
40
  it "returns the message but leaves it in the queue" do
39
41
  queue.push(message)
40
42
  queue.peek.should == decoded
41
- queue.size.should == 1
43
+ queue.size.should == 1
42
44
  end
43
45
  end
44
46
 
@@ -59,15 +61,19 @@ describe 'Superbolt::Queue' do
59
61
  end
60
62
 
61
63
  describe '#all' do
62
- before do
64
+ before do
63
65
  queue.push(message)
64
66
  queue.push(message)
65
67
  queue.push(message)
66
68
  end
67
69
 
68
- it "returns all the messages on the queue and doesnt consume them" do
69
- Superbolt::IncomingMessage.should_receive(:new).exactly(3).times.and_return(double('whatever', parse:true))
70
- queue.all
70
+ it "returns all the messages on the queue" do
71
+ messages = queue.all
72
+ messages.size.should == 3
73
+ messages.uniq.should == [decoded]
74
+ end
75
+
76
+ it "does not consume the messages" do
71
77
  queue.size.should == 3
72
78
  end
73
79
  end
@@ -112,8 +118,8 @@ describe 'Superbolt::Queue' do
112
118
  end
113
119
 
114
120
  it "returns all messages where the block is true" do
115
- messages = queue.delete{|json| json['i'] % 2 != 0 }
116
- messages.map{|json| json['i']}.should == [1,3,5,7,9]
121
+ messages = queue.delete{|json| json['i'] > 2 && json['i'] != 6 && json['i'] < 8 }
122
+ messages.map{|json| json['i']}.should == [3,4,5,7]
117
123
  end
118
124
 
119
125
  it "removes those messages from the queue" do
@@ -124,8 +130,7 @@ describe 'Superbolt::Queue' do
124
130
  end
125
131
 
126
132
  describe 'errors cases' do
127
- let(:new_queue) { Superbolt::Queue.new("superbolt_test") }
128
- #{rand(1_000_000)}
133
+ let(:new_queue) { Superbolt::Queue.new("random.name.#{rand(1_000_000)}") }
129
134
 
130
135
  after do
131
136
  new_queue.clear
@@ -1,15 +1,31 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Superbolt, 'the facade' do
4
- describe '.config' do
5
- after do
6
- Superbolt.instance_eval do
7
- @config = nil
8
- end
4
+ before do
5
+ Superbolt.instance_eval do
6
+ @config = nil
7
+ end
8
+ end
9
+
10
+ describe 'total configuration' do
11
+ before do
12
+ Superbolt.app_name = 'bossanova'
13
+ Superbolt.env = 'production'
14
+ Superbolt.config = {
15
+ connection_key: 'SOME_RABBITMQ_URL'
16
+ }
17
+ end
18
+
19
+ it "should retain the configuration information" do
20
+ Superbolt.config.app_name.should == 'bossanova'
21
+ Superbolt.config.env.should == 'production'
22
+ Superbolt.config.env_connection_key.should == 'SOME_RABBITMQ_URL'
9
23
  end
24
+ end
10
25
 
11
- it "stores the default" do
12
- Superbolt.config.should == Superbolt::Config.new
26
+ describe '.config' do
27
+ it "has a default" do
28
+ Superbolt.config.should == Superbolt::Config.new({})
13
29
  end
14
30
 
15
31
  it "can be customized" do
data/superbolt.gemspec CHANGED
@@ -19,10 +19,11 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency "activesupport"
22
- spec.add_dependency "bunny", "~> 1.0.5"
22
+ spec.add_dependency "amqp"
23
+ spec.add_dependency "bunny"
24
+ spec.add_dependency 'eventmachine'
23
25
 
24
26
  spec.add_development_dependency "bundler", "~> 1.3"
25
27
  spec.add_development_dependency "rake"
26
28
  spec.add_development_dependency "rspec"
27
- spec.add_development_dependency "eventmachine"
28
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: superbolt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - socialchorus
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-18 00:00:00.000000000 Z
11
+ date: 2014-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -25,41 +25,41 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: bunny
28
+ name: amqp
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
- version: 1.0.5
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
- version: 1.0.5
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: bundler
42
+ name: bunny
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
- version: '1.3'
48
- type: :development
47
+ version: '0'
48
+ type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
- version: '1.3'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rake
56
+ name: eventmachine
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
- type: :development
62
+ type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
@@ -67,7 +67,21 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rspec
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '1.3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '1.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - '>='
@@ -81,7 +95,7 @@ dependencies:
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
- name: eventmachine
98
+ name: rspec
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - '>='
@@ -108,6 +122,7 @@ files:
108
122
  - README.md
109
123
  - Rakefile
110
124
  - lib/superbolt.rb
125
+ - lib/superbolt/adapter/amqp.rb
111
126
  - lib/superbolt/adapter/base.rb
112
127
  - lib/superbolt/adapter/bunny.rb
113
128
  - lib/superbolt/app.rb
@@ -151,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
166
  version: '0'
152
167
  requirements: []
153
168
  rubyforge_project:
154
- rubygems_version: 2.0.6
169
+ rubygems_version: 2.0.14
155
170
  signing_key:
156
171
  specification_version: 4
157
172
  summary: Superbolt is a gem that makes SOA intra-app communication easy, via RabbitMQ