sidekiq-bus 0.5.2 → 0.5.3

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: 8c073296475ba07b08f7f92b019d091b38b4038e
4
- data.tar.gz: cb95f95a5ec099cc471dcd8695cbf2ec478a9b6a
3
+ metadata.gz: d7fe08a16a8b8372bba7ddbfcfe8c59172d1f8d0
4
+ data.tar.gz: 73b19c7ef93c76e6fc35af205f9161a736177e44
5
5
  SHA512:
6
- metadata.gz: 846ac47ae7600da4249d89e55e81e9e16f4de85e768697017f343b5f3952683232b29975055feddf2dcea83dc15a48e25c1e2f6d4ceee452b94f9bf32d4d590f
7
- data.tar.gz: a5a9156736395bf84e9acbebbd533ce27a71436d74bc10923c893e06cf07c734e9756ddc2e42bfd64822823e322491a57b5cdb4facacbb71a7c09b17135f1715
6
+ metadata.gz: 672c3b9b603611b05d910fc913f4378d08995639e90706a15596fc509428bb631943341a5d3531b981ca698843c1d517166d65b1a948b87178c5973fb9d66f57
7
+ data.tar.gz: 83cb7199def75ffebf8d649dfea44b9773aa70c13999a078c361bebfa6e2a3368809dbe54cd878d15bd0f89fa98335d475353f98dfe1835edab6b54d11221522
@@ -0,0 +1,2 @@
1
+ sidekiq-bus
2
+
@@ -0,0 +1 @@
1
+ 2.1.5
@@ -1,38 +1,40 @@
1
- ## Resque Bus
1
+ ## Sidekiq Bus
2
2
 
3
- This gem uses Redis and Resque to allow simple asynchronous communication between apps.
3
+ This gem provides an adapter for Sidekiq for use in the [queue-bus](https://github.com/queue-bus/queue-bus) system.
4
+ It uses Redis and the Sidekiq that you are already using to allow simple asynchronous communication between apps.
4
5
 
5
6
  ### Install
6
7
 
7
- To install, include the 'resque-bus' gem and add the following to your Rakefile:
8
+ To install, include the 'sidekiq-bus' gem and add the following to your Rakefile:
8
9
 
9
10
  ```ruby
10
11
  require "sidekiq_bus/tasks"
11
12
  ```
12
13
 
14
+
13
15
  ### Example
14
16
 
15
17
  Application A can publish an event
16
18
 
17
19
  ```ruby
18
- # config
19
- Resque.redis = "192.168.1.1:6379"
20
+ # pick an adapter
21
+ require 'sidekiq-bus' # (or other adapter)
20
22
 
21
23
  # business logic
22
- ResqueBus.publish("user_created", "id" => 42, "first_name" => "John", "last_name" => "Smith")
24
+ QueueBus.publish("user_created", "id" => 42, "first_name" => "John", "last_name" => "Smith")
23
25
 
24
26
  # or do it later
25
- ResqueBus.publish_at(1.hour.from_now, "user_created", "id" => 42, "first_name" => "John", "last_name" => "Smith")
27
+ QueueBus.publish_at(1.hour.from_now, "user_created", "id" => 42, "first_name" => "John", "last_name" => "Smith")
26
28
  ```
27
29
 
28
30
  Application B is subscribed to events
29
31
 
30
32
  ```ruby
31
- # config
32
- Resque.redis = "192.168.1.1:6379"
33
+ # pick an adapter
34
+ require 'sidekiq-bus' # (or other adapter)
33
35
 
34
36
  # initializer
35
- ResqueBus.dispatch("app_b") do
37
+ QueueBus.dispatch("app_b") do
36
38
  # processes event on app_b_default queue
37
39
  # subscribe is short-hand to subscribe to your 'default' queue and this block with process events with the name "user_created"
38
40
  subscribe "user_created" do |attributes|
@@ -65,7 +67,7 @@ Applications can also subscribe within classes using the provided `Subscriber` m
65
67
 
66
68
  ```ruby
67
69
  class SimpleSubscriber
68
- include ResqueBus::Subscriber
70
+ include QueueBus::Subscriber
69
71
  subscribe :my_method
70
72
 
71
73
  def my_method(attributes)
@@ -78,7 +80,7 @@ The following is equivalent to the original initializer and shows more options:
78
80
 
79
81
  ```ruby
80
82
  class OtherSubscriber
81
- include ResqueBus::Subscriber
83
+ include QueueBus::Subscriber
82
84
  application :app_b
83
85
 
84
86
  subscribe :user_created
@@ -110,122 +112,11 @@ Note: This subscribes when this class is loaded, so it needs to be in your load
110
112
 
111
113
  Each app needs to tell Redis about its subscriptions:
112
114
 
113
- $ rake resquebus:subscribe
114
-
115
- The subscription block is run inside a Resque worker which needs to be started for each app.
116
-
117
- $ rake resquebus:setup resque:work
118
-
119
- The incoming queue also needs to be processed on a dedicated or all the app servers.
120
-
121
- $ rake resquebus:driver resque:work
122
-
123
- If you want retry to work for subscribing apps, you should run resque-scheduler
124
-
125
- $ rake resque:scheduler
126
-
127
- ### Adapters
128
-
129
- ResqueBus now supports multiple adapters! By default ResqueBus uses Resque but you can now configure your application to use Sidekiq to drive and subscribe the bus.
130
-
131
- First be sure to configure ResqueBus to use Sidekiq early in your applications' initialization cycle:
132
- ```
133
- ResqueBus.adapter = 'Sidekiq'
134
- ```
135
- You will be responsible for setting up the queues for your Sidekiq clients however you can get the appropriate queue names with the following tasks:
136
- For driving applications:
137
- ```
138
- $ rake resquebus:driver:sidekiq
139
- ```
140
- For subscribing applications:
141
- ```
142
- $ rake resquebus:setup:sidekiq
143
- ```
144
- These tasks will provide the queue_names and some minimal suggestions for starting the client.
145
-
146
- Your subscribing applications will still need to also use the appropriate rake task:
147
- ```
148
- $ rake resquebus:subscribe:sidekiq
149
- ```
150
-
151
- At the moment you are expected to include the Sidekiq gem in your own applications.
152
-
153
- And yes we are planning on renaming and restructuring the project! Please contact the maintainer if you would like to add a different adapter.
115
+ $ rake queuebus:subscribe
154
116
 
155
- ### Heartbeat
117
+ You'll then need to run Sidekiq. Make sure the bus_incoming queues and the ones you are using are included.
156
118
 
157
- We've found it useful to have the bus act like `cron`, triggering timed jobs throughout the system. Resque Bus calls this a heartbeat.
158
- It uses resque-scheduler to trigger the events. You can enable it in your Rakefile.
159
-
160
- ```ruby
161
- # resque.rake
162
- namespace :resque do
163
- task :setup => [:environment] do
164
- ResqueBus.heartbeat!
165
- end
166
- end
167
- ```
168
-
169
- Or add it to your `schedule.yml` directly
170
-
171
- ```yaml
172
- resquebus_heartbeat:
173
- cron: "* * * * *"
174
- class: "::ResqueBus::Heartbeat"
175
- queue: resquebus_incoming
176
- description: "I publish a heartbeat_minutes event every minute"
177
- ```
178
-
179
- It is the equivalent of doing this every minute
180
-
181
- ```ruby
182
- seconds = minutes * (60)
183
- hours = minutes / (60)
184
- days = minutes / (60*24)
185
-
186
- now = Time.at(seconds)
187
-
188
- attributes = {}
189
-
190
- now = Time.now
191
- seconds = now.to_i
192
- ResqueBus.publish("hearbeat_minutes", {
193
- "epoch_seconds" => seconds,
194
- "epoch_minutes" => seconds / 1.minute,
195
- "epoch_hours" => seconds / 1.hour,
196
- "epoch_days" => seconds / 1.day,
197
- "minute" => now.min
198
- "hour" => now.hour
199
- "day" => now.day
200
- "month" => now.month
201
- "year" => now.year
202
- "yday" => now.yday
203
- "wday" => now.wday
204
- })
205
- ```
206
-
207
- This allows you do something like this:
208
-
209
- ```ruby
210
- ResqueBus.dispatch("app_c") do
211
- # runs at 10:20, 11:20, etc
212
- subscribe "once_an_hour", 'bus_event_type' => 'heartbeat_minutes', 'minute' => 20 do |attributes|
213
- Sitemap.generate!
214
- end
215
-
216
- # runs every five minutes
217
- subscribe "every_five_minutes", 'bus_event_type' => 'heartbeat_minutes' do |attributes|
218
- next unless attributes["epoch_minutes"] % 5 == 0
219
- HealthCheck.run!
220
- end
221
-
222
- # runs at 8am on the first of every month
223
- subscribe "new_month_morning", 'bus_event_type' => 'heartbeat_minutes', 'day' => 1, hour' => 8, 'minute' => 0, do |attributes|
224
- next unless attributes["epoch_minutes"] % 5 == 0
225
- Token.old.expire!
226
- end
227
- end
228
- ```
119
+ $ bundle exec sidekiq -q default -q app_b_default -q bus_incoming
229
120
 
230
121
  ### Local Mode
231
122
 
@@ -233,32 +124,24 @@ For development, a local mode is provided and is specified in the configuration.
233
124
 
234
125
  ```ruby
235
126
  # config
236
- ResqueBus.local_mode = :standalone
127
+ QueueBus.local_mode = :standalone
237
128
  or
238
- ResqueBus.local_mode = :inline
129
+ QueueBus.local_mode = :inline
239
130
  ```
240
131
 
241
- Standalone mode does not require a separate resquebus:driver task to be running to process the
132
+ Standalone mode does not require a separate queuebus:driver task to be running to process the
242
133
  incoming queue. Simply publishing to the bus will distribute the incoming events
243
- to the appropriate application specific queue. A separate resquebus:work task does
134
+ to the appropriate application specific queue. A separate queuebus:work task does
244
135
  still need to be run to process these events
245
136
 
246
137
  Inline mode skips queue processing entirely and directly dispatches the
247
138
  event to the appropriate code block.
248
139
 
249
- You can also say `ResqueBus.local_mode = :suppress` to turn off publishing altogether.
140
+ You can also say `QueueBus.local_mode = :suppress` to turn off publishing altogether.
250
141
  This can be helpful inside some sort of migration, for example.
251
142
 
252
143
  ### TODO
253
144
 
254
- * Sidekiq adapter
255
- * Refactor rake tasks for resque/sidekiq
256
- * Refactor to a storage adapter for Redis, so we can store subscription info in MySQL or something else
257
145
  * Replace local modes with adapters
258
- * There are a few spots in the code with TODO notes
259
- * Make this not freak out in development without Redis or when Redis is down
260
146
  * We might not actually need to publish in tests
261
147
  * Add some rspec helpers for the apps to use: should_ post an event_publish or something along those lines
262
- * Allow calling resquebus:setup and resquebus:driver together (append to ENV['QUEUES'], don't replace it)
263
-
264
- Copyright (c) 2011 Brian Leonard, released under the MIT license
@@ -2,8 +2,4 @@ require "queue-bus"
2
2
  require "sidekiq_bus/adapter"
3
3
  require "sidekiq_bus/version"
4
4
 
5
- module ResqueBus
6
-
7
- end
8
-
9
5
  QueueBus.adapter = QueueBus::Adapters::Sidekiq.new
@@ -1,93 +1,13 @@
1
1
  # require 'sidekiq_bus/tasks'
2
2
  # will give you these tasks
3
3
 
4
+ require "queue_bus/tasks"
4
5
 
5
- require "resque/tasks"
6
- namespace :sidekiqbus do
7
-
8
- desc "Setup will configure a resque task to run before resque:work"
9
- task :setup => [ :preload ] do
10
-
11
- if ENV['QUEUES'].nil?
12
- manager = ::QueueBus::TaskManager.new(true)
13
- queues = manager.queue_names
14
- ENV['QUEUES'] = queues.join(",")
15
- else
16
- queues = ENV['QUEUES'].split(",")
17
- end
18
-
19
- if queues.size == 1
20
- puts " >> Working Queue : #{queues.first}"
21
- else
22
- puts " >> Working Queues: #{queues.join(", ")}"
23
- end
24
- end
25
-
26
- desc "Subscribes this application to QueueBus events"
27
- task :subscribe => [ :preload ] do
28
- manager = ::QueueBus::TaskManager.new(true)
29
- count = manager.subscribe!
30
- raise "No subscriptions created" if count == 0
31
- end
32
-
33
- desc "Unsubscribes this application from QueueBus events"
34
- task :unsubscribe => [ :preload ] do
35
- require 'resque-bus'
36
- manager = ::QueueBus::TaskManager.new(true)
37
- count = manager.unsubscribe!
38
- puts "No subscriptions unsubscribed" if count == 0
39
- end
40
-
41
- desc "Sets the queue to work the driver Use: `rake sidekiqbus:driver resque:work`"
42
- task :driver => [ :preload ] do
43
- ENV['QUEUES'] = ::QueueBus.incoming_queue
44
- end
6
+ namespace :queuebus do
45
7
 
46
8
  # Preload app files if this is Rails
47
9
  task :preload do
48
10
  require "sidekiq"
49
11
  end
50
12
 
51
-
52
- # examples to test out the system
53
- namespace :example do
54
- desc "Publishes events to example applications"
55
- task :publish => [ "sidekiqbus:preload", "sidekiqbus:setup" ] do
56
- which = ["one", "two", "three", "other"][rand(4)]
57
- QueueBus.publish("event_#{which}", { "rand" => rand(99999)})
58
- QueueBus.publish("event_all", { "rand" => rand(99999)})
59
- QueueBus.publish("none_subscribed", { "rand" => rand(99999)})
60
- puts "published event_#{which}, event_all, none_subscribed"
61
- end
62
-
63
- desc "Sets up an example config"
64
- task :register => [ "sidekiqbus:preload"] do
65
- QueueBus.dispatch("example") do
66
- subscribe "event_one" do
67
- puts "event1 happened"
68
- end
69
-
70
- subscribe "event_two" do
71
- puts "event2 happened"
72
- end
73
-
74
- high "event_three" do
75
- puts "event3 happened (high)"
76
- end
77
-
78
- low "event_.*" do |attributes|
79
- puts "LOG ALL: #{attributes.inspect}"
80
- end
81
- end
82
- end
83
-
84
- desc "Subscribes this application to QueueBus example events"
85
- task :subscribe => [ :register, "sidekiqbus:subscribe" ]
86
-
87
- desc "Start a QueueBus example worker"
88
- task :work => [ :register, "sidekiqbus:setup", "resque:work" ]
89
-
90
- desc "Start a QueueBus example worker"
91
- task :driver => [ :register, "sidekiqbus:driver", "resque:work" ]
92
- end
93
13
  end
@@ -1,3 +1,3 @@
1
1
  module SidekiqBus
2
- VERSION = "0.5.2"
2
+ VERSION = "0.5.3"
3
3
  end
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
8
8
  s.authors = ["Brian Leonard"]
9
9
  s.email = ["brian@bleonard.com"]
10
10
  s.homepage = "https://github.com/queue-bus/sidekiq-bus"
11
- s.summary = %q{A simple event bus on top of Resque}
12
- s.description = %q{A simple event bus on top of Resque. Publish and subscribe to events as they occur through a queue.}
11
+ s.summary = %q{A simple event bus on top of Sidekiq}
12
+ s.description = %q{A simple event bus on top of Sidekiq. Publish and subscribe to events as they occur through a queue.}
13
13
 
14
14
  s.rubyforge_project = "sidekiq-bus"
15
15
 
@@ -18,10 +18,13 @@ Gem::Specification.new do |s|
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
- s.add_dependency('queue-bus', '0.5.2')
21
+ s.add_dependency('queue-bus', '0.5.4')
22
22
  s.add_dependency('sidekiq', ['>= 3.0.0', '< 4.0'])
23
23
 
24
24
  s.add_development_dependency("rspec")
25
+ s.add_development_dependency("fakeredis")
26
+ s.add_development_dependency("redis-namespace")
27
+ s.add_development_dependency("pry")
25
28
  s.add_development_dependency("timecop")
26
29
  s.add_development_dependency("json_pure")
27
30
  end
@@ -0,0 +1,113 @@
1
+ require 'spec_helper'
2
+ require 'celluloid'
3
+ require 'sidekiq/scheduled'
4
+
5
+ describe "Sidekiq Integration" do
6
+ describe "Happy Path" do
7
+ before(:each) do
8
+ Sidekiq::Testing.fake!
9
+ QueueBus.dispatch("r1") do
10
+ subscribe "event_name" do |attributes|
11
+ QueueBus::Runner1.run(attributes)
12
+ end
13
+ end
14
+
15
+ QueueBus::TaskManager.new(false).subscribe!
16
+ end
17
+
18
+ it "should publish and receive" do
19
+ Sidekiq::Testing.fake!
20
+ QueueBus::Runner1.value.should == 0
21
+
22
+ QueueBus.publish("event_name", "ok" => true)
23
+ QueueBus::Runner1.value.should == 0
24
+
25
+ QueueBus::Worker.perform_one
26
+
27
+ QueueBus::Runner1.value.should == 0
28
+
29
+ QueueBus::Worker.perform_one
30
+
31
+ QueueBus::Runner1.value.should == 1
32
+ end
33
+
34
+ it "should publish and receive" do
35
+ Sidekiq::Testing.inline!
36
+ QueueBus::Runner1.value.should == 0
37
+
38
+ QueueBus.publish("event_name", "ok" => true)
39
+ QueueBus::Runner1.value.should == 1
40
+ end
41
+
42
+ end
43
+
44
+ describe "Delayed Publishing" do
45
+ before(:each) do
46
+ Timecop.freeze(now)
47
+ QueueBus.stub(:generate_uuid).and_return("idfhlkj")
48
+ end
49
+ after(:each) do
50
+ Timecop.return
51
+ end
52
+ let(:delayed_attrs) { {"bus_delayed_until" => future.to_i,
53
+ "bus_id" => "#{now.to_i}-idfhlkj",
54
+ "bus_app_hostname" => `hostname 2>&1`.strip.sub(/.local/,'')} }
55
+
56
+ let(:bus_attrs) { delayed_attrs.merge({"bus_published_at" => worktime.to_i})}
57
+ let(:now) { Time.parse("01/01/2013 5:00")}
58
+ let(:future) { Time.at(now.to_i + 60) }
59
+ let(:worktime) {Time.at(future.to_i + 1)}
60
+
61
+ it "should add it to Redis" do
62
+ hash = {:one => 1, "two" => "here", "id" => 12 }
63
+ event_name = "event_name"
64
+ QueueBus.publish_at(future, event_name, hash)
65
+
66
+ val = QueueBus.redis { |redis| redis.zrange("schedule", 0, 1) }.first
67
+
68
+ hash = JSON.parse(val)
69
+
70
+ hash["class"].should == "QueueBus::Worker"
71
+ hash["args"].size.should == 1
72
+ JSON.parse(hash["args"].first).should == {"bus_class_proxy" => "QueueBus::Publisher", "bus_event_type"=>"event_name", "two"=>"here", "one"=>1, "id" => 12}.merge(delayed_attrs)
73
+ hash["queue"].should == "bus_incoming"
74
+ end
75
+
76
+ it "should move it to the real queue when processing" do
77
+ hash = {:one => 1, "two" => "here", "id" => 12 }
78
+ event_name = "event_name"
79
+
80
+ val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") }
81
+ val.should == nil
82
+
83
+ QueueBus.publish_at(future, event_name, hash)
84
+
85
+ val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") }
86
+ val.should == nil # nothing really added
87
+
88
+ Sidekiq::Scheduled::Poller.new.poll
89
+
90
+ val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") }
91
+ val.should == nil # nothing added yet
92
+
93
+ # process scheduler in future
94
+ Timecop.freeze(worktime) do
95
+ Sidekiq::Scheduled::Poller.new.poll
96
+ val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") }
97
+ hash = JSON.parse(val)
98
+ hash["class"].should == "QueueBus::Worker"
99
+ hash["args"].size.should == 1
100
+ JSON.parse(hash["args"].first).should == {"bus_class_proxy" => "QueueBus::Publisher", "bus_event_type"=>"event_name", "two"=>"here", "one"=>1, "id" => 12}.merge(delayed_attrs)
101
+
102
+ QueueBus::Publisher.perform(JSON.parse(hash["args"].first))
103
+
104
+ val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") }
105
+ hash = JSON.parse(val)
106
+ hash["class"].should == "QueueBus::Worker"
107
+ hash["args"].size.should == 1
108
+ JSON.parse(hash["args"].first).should == {"bus_class_proxy" => "QueueBus::Driver", "bus_event_type"=>"event_name", "two"=>"here", "one"=>1, "id" => 12}.merge(bus_attrs)
109
+ end
110
+ end
111
+
112
+ end
113
+ end
@@ -35,7 +35,7 @@ module QueueBus
35
35
  end
36
36
 
37
37
  describe ".perform" do
38
- let(:attributes) { {"x" => "y", "bus_class_proxy" => "ResqueBus::Driver"} }
38
+ let(:attributes) { {"x" => "y"} }
39
39
 
40
40
  before(:each) do
41
41
  QueueBus.redis { |redis| redis.smembers("queues") }.should == []
@@ -1,9 +1,15 @@
1
1
  require 'timecop'
2
2
  require 'queue-bus'
3
3
  require 'adapter/support'
4
+ require 'pry'
4
5
 
5
6
  reset_test_adapter
6
7
 
8
+ require 'fakeredis'
9
+ Sidekiq.redis = ConnectionPool.new { Redis.new(driver: Redis::Connection::Memory) }
10
+
11
+ require 'sidekiq/testing'
12
+
7
13
  module QueueBus
8
14
  class Runner
9
15
  def self.value
@@ -47,6 +53,11 @@ def test_list(*args)
47
53
  end
48
54
 
49
55
  RSpec.configure do |config|
56
+
57
+ config.run_all_when_everything_filtered = true
58
+ config.filter_run focus: true
59
+ config.alias_example_to :fit, focus: true
60
+
50
61
  config.mock_with :rspec do |c|
51
62
  c.syntax = :should
52
63
  end
@@ -56,6 +67,7 @@ RSpec.configure do |config|
56
67
 
57
68
  config.before(:each) do
58
69
  reset_test_adapter
70
+ Sidekiq::Testing.disable!
59
71
  end
60
72
  config.after(:each) do
61
73
  begin
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-bus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Leonard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-21 00:00:00.000000000 Z
11
+ date: 2015-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: queue-bus
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.5.2
19
+ version: 0.5.4
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.5.2
26
+ version: 0.5.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sidekiq
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,6 +58,48 @@ dependencies:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: fakeredis
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: redis-namespace
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: pry
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
61
103
  - !ruby/object:Gem::Dependency
62
104
  name: timecop
63
105
  requirement: !ruby/object:Gem::Requirement
@@ -86,7 +128,7 @@ dependencies:
86
128
  - - ">="
87
129
  - !ruby/object:Gem::Version
88
130
  version: '0'
89
- description: A simple event bus on top of Resque. Publish and subscribe to events
131
+ description: A simple event bus on top of Sidekiq. Publish and subscribe to events
90
132
  as they occur through a queue.
91
133
  email:
92
134
  - brian@bleonard.com
@@ -97,6 +139,8 @@ files:
97
139
  - ".gitignore"
98
140
  - ".rbenv-version"
99
141
  - ".rspec"
142
+ - ".ruby-gemset"
143
+ - ".ruby-version"
100
144
  - Gemfile
101
145
  - MIT-LICENSE
102
146
  - README.mdown
@@ -106,6 +150,7 @@ files:
106
150
  - lib/sidekiq_bus/tasks.rb
107
151
  - lib/sidekiq_bus/version.rb
108
152
  - sidekiq-bus.gemspec
153
+ - spec/adapter/integration_spec.rb
109
154
  - spec/adapter/support.rb
110
155
  - spec/adapter_spec.rb
111
156
  - spec/application_spec.rb
@@ -145,8 +190,9 @@ rubyforge_project: sidekiq-bus
145
190
  rubygems_version: 2.2.2
146
191
  signing_key:
147
192
  specification_version: 4
148
- summary: A simple event bus on top of Resque
193
+ summary: A simple event bus on top of Sidekiq
149
194
  test_files:
195
+ - spec/adapter/integration_spec.rb
150
196
  - spec/adapter/support.rb
151
197
  - spec/adapter_spec.rb
152
198
  - spec/application_spec.rb