bumbleworks 0.0.41 → 0.0.42

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.
data/Gemfile CHANGED
@@ -2,4 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in bumbleworks.gemspec
4
4
  gemspec
5
- gem "rufus-scheduler", "~> 2.0"
data/README.md CHANGED
@@ -1,11 +1,5 @@
1
1
  # Bumbleworks
2
2
 
3
- **IMPORTANT**: Ruote (a dependency of Bumbleworks) currently has a bug in its dependency graph. Until this is fixed (and we'll update this readme when it is), make sure you add this to your gemfile:
4
-
5
- ```ruby
6
- gem 'rufus-scheduler', '~> 2.0'
7
- ```
8
-
9
3
  **NOTE**: This product is still pre-release, and implementation is *not* in sync with documentation yet - hence the pre-release version. We'll follow [the Semantic Versioning Specification (Semver)](http://semver.org/), so you can assume anything at 0.x.x still has an unstable API. But we *are* actively developing this.
10
4
 
11
5
  Bumbleworks is a gem that adds a workflow engine (via [ruote](http://github.com/jmettraux/ruote)) to your Ruby application, and adds tools for task authorization and locking. It also establishes conventions for easily loading process definitions and registering participant classes based on configurable file locations.
@@ -99,14 +99,17 @@ module Bumbleworks
99
99
 
100
100
  def register_participants(&block)
101
101
  dashboard.register(&block) if block
102
- set_catchall_if_needed
103
102
  register_error_handler
103
+ set_catchall_if_needed
104
104
  dashboard.participant_list
105
105
  end
106
106
 
107
107
  def register_error_handler
108
- dashboard.register_participant :error_handler_participant, Bumbleworks::ErrorHandlerParticipant
109
- dashboard.on_error = 'error_handler_participant'
108
+ unless dashboard.participant_list.any? { |part| part.regex == '^error_handler_participant$' }
109
+ error_handler_participant = ::Ruote::ParticipantEntry.new(['^error_handler_participant$', ["Bumbleworks::ErrorHandlerParticipant", {}]])
110
+ dashboard.participant_list = dashboard.participant_list.unshift(error_handler_participant)
111
+ dashboard.on_error = 'error_handler_participant'
112
+ end
110
113
  end
111
114
 
112
115
  def set_catchall_if_needed
@@ -1,3 +1,3 @@
1
1
  module Bumbleworks
2
- VERSION = "0.0.41"
2
+ VERSION = "0.0.42"
3
3
  end
@@ -225,6 +225,14 @@ describe Bumbleworks::Ruote do
225
225
  described_class.should_receive(:register_error_handler)
226
226
  described_class.start_worker!
227
227
  end
228
+
229
+ it 'does not add another error_handler_participant if already registered' do
230
+ described_class.register_participants
231
+ described_class.start_worker!
232
+ described_class.dashboard.participant_list.map(&:classname).should == [
233
+ 'Bumbleworks::ErrorHandlerParticipant', 'Bumbleworks::StorageParticipant']
234
+ Bumbleworks.dashboard.on_error.flatten[2].should == 'error_handler_participant'
235
+ end
228
236
  end
229
237
 
230
238
  describe '.register_participants' do
@@ -238,8 +246,8 @@ describe Bumbleworks::Ruote do
238
246
  described_class.dashboard.participant_list.should be_empty
239
247
  described_class.register_participants &registration_block
240
248
  described_class.dashboard.participant_list.should have(5).items
241
- described_class.dashboard.participant_list.map(&:classname).should =~ [
242
- 'BeesHoney', 'MapleSyrup', 'NewCatchall', 'Bumbleworks::ErrorHandlerParticipant', 'Bumbleworks::StorageParticipant']
249
+ described_class.dashboard.participant_list.map(&:classname).should == [
250
+ 'Bumbleworks::ErrorHandlerParticipant', 'BeesHoney', 'MapleSyrup', 'NewCatchall', 'Bumbleworks::StorageParticipant']
243
251
  end
244
252
 
245
253
  it 'does not add storage participant catchall if already exists' do
@@ -251,16 +259,17 @@ describe Bumbleworks::Ruote do
251
259
  described_class.dashboard.participant_list.should be_empty
252
260
  described_class.register_participants &registration_block
253
261
  described_class.dashboard.participant_list.should have(3).items
254
- described_class.dashboard.participant_list.map(&:classname).should =~ [
255
- 'BeesHoney', 'Bumbleworks::ErrorHandlerParticipant', 'Ruote::StorageParticipant'
262
+ described_class.dashboard.participant_list.map(&:classname).should == [
263
+ 'Bumbleworks::ErrorHandlerParticipant', 'BeesHoney', 'Ruote::StorageParticipant'
256
264
  ]
257
265
  end
258
266
 
259
- it 'adds catchall participant if block is nil' do
267
+ it 'adds catchall and error_handler participants if block is nil' do
260
268
  described_class.dashboard.participant_list.should be_empty
261
269
  described_class.register_participants &nil
262
270
  described_class.dashboard.participant_list.should have(2).item
263
- described_class.dashboard.participant_list.first.classname.should == 'Bumbleworks::StorageParticipant'
271
+ described_class.dashboard.participant_list.map(&:classname).should ==
272
+ ['Bumbleworks::ErrorHandlerParticipant', 'Bumbleworks::StorageParticipant']
264
273
  end
265
274
  end
266
275
 
@@ -275,14 +284,14 @@ describe Bumbleworks::Ruote do
275
284
  Bumbleworks.dashboard.on_error.flatten[2].should == 'error_handler_participant'
276
285
  end
277
286
 
278
- it 'skip registration if error_handlers list is missing' do
279
- described_class.stub(:error_handlers => nil)
280
- Bumbleworks.dashboard.should_not_receive(:register_participant).with(:error_handler, Bumbleworks::ErrorHandlerParticipant)
281
- end
287
+ it 'does not override existing error_handler_participant' do
288
+ described_class.register_participants do
289
+ error_handler_participant 'Whatever'
290
+ end
291
+ described_class.register_error_handler
292
+ Bumbleworks.dashboard.participant_list.map(&:classname).should ==
293
+ ['Whatever', 'Bumbleworks::StorageParticipant']
282
294
 
283
- it 'skip registration if error_handlers list is empty' do
284
- described_class.stub(:error_handlers => [])
285
- Bumbleworks.dashboard.should_not_receive(:register_participant).with(:error_handler, Bumbleworks::ErrorHandlerParticipant)
286
295
  end
287
296
  end
288
297
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bumbleworks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.41
4
+ version: 0.0.42
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -242,7 +242,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
242
242
  version: '0'
243
243
  segments:
244
244
  - 0
245
- hash: 2565282303718385581
245
+ hash: -1259087947392220578
246
246
  required_rubygems_version: !ruby/object:Gem::Requirement
247
247
  none: false
248
248
  requirements:
@@ -251,7 +251,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
251
251
  version: '0'
252
252
  segments:
253
253
  - 0
254
- hash: 2565282303718385581
254
+ hash: -1259087947392220578
255
255
  requirements: []
256
256
  rubyforge_project:
257
257
  rubygems_version: 1.8.23