bumbleworks 0.0.8 → 0.0.9

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/.gitignore CHANGED
@@ -7,7 +7,6 @@ Gemfile.lock
7
7
  InstalledFiles
8
8
  _yardoc
9
9
  coverage
10
- doc/
11
10
  lib/bundler/man
12
11
  pkg
13
12
  rdoc
data/doc/QUICKSTART.md ADDED
@@ -0,0 +1,67 @@
1
+ # Quick Start for Rails
2
+
3
+ 1. Install [Rails](http://rubyonrails.org) and [redis](http://redis.io).
4
+
5
+ 1. Create a new Rails application.
6
+
7
+ ```
8
+ $ rails new bumbleworks_quickstart_rails
9
+ $ cd bumbleworks_quickstart_rails
10
+ ```
11
+
12
+ 1. Add Bumbleworks and the Redis storage adapter to your Gemfile.
13
+
14
+ ```ruby
15
+ gem 'bumbleworks'
16
+ gem 'bumbleworks-redis'
17
+ ```
18
+
19
+ 1. Install the gems in your Gemfile.
20
+ ```
21
+ $ bundle install
22
+ ```
23
+
24
+ 1. Create an initializer at `config/initializers/bumbleworks.rb`:
25
+
26
+ ```ruby
27
+ Bumbleworks.configure do |c|
28
+ c.storage = Redis.new
29
+ end
30
+
31
+ Bumbleworks.load_definitions!
32
+ ```
33
+
34
+ 1. Add your first process definition at `lib/process_definitions/`:
35
+
36
+ ```ruby
37
+ Bumbleworks.define_process do
38
+ # write your process definition here
39
+ end
40
+ ```
41
+
42
+ Process definitions follow the same syntax as [ruote](http://ruote.rubyforge.org/definitions.html), but are defined using `Bumbleworks.define_process` instead of `Ruote.define`.
43
+
44
+ 1. (*optional*) Put any [custom participants](http://ruote.rubyforge.org/implementing_participants.html) in `app/participants` or `participants`.
45
+
46
+ 1. Create an initializer file (e.g. `config/initializers/bumbleworks.rb` for Rails) with the following:
47
+
48
+ ```ruby
49
+ Bumbleworks.configure do |c|
50
+ c.storage = Hash.new
51
+ end
52
+
53
+ # this next block is optional - it's only needed
54
+ # if you want to load custom participants
55
+ Bumbleworks.register_participants do
56
+ # foo FooParticipant
57
+ # bar BarParticipant
58
+ # ...
59
+ end
60
+
61
+ Bumbleworks.load_definitions!
62
+ Bumbleworks.start_worker!
63
+ ```
64
+
65
+ 1. You can now launch processes using `Bumbleworks.launch!('process_definition_name')`.
66
+
67
+ 1. Any expressions of the form `[role] :task => [task_name]` will be turned into tasks retrievable at `Bumbleworks::Task.all`; you can get tasks specific to a role or roles using `Bumbleworks::Task.for_roles([role1, role2, ...])`.
@@ -76,21 +76,16 @@ module Bumbleworks
76
76
  storage_participant.proceed(@workitem)
77
77
  end
78
78
 
79
- # Claim task and assign token to claim
80
- def claim(token)
81
- if token && claimant && token != claimant
82
- raise AlreadyClaimed, "Already claimed by #{claimant}"
83
- end
84
-
85
- params['claimant'] = token
86
- save
87
- end
88
-
89
79
  # Token used to claim task, nil if not claimed
90
80
  def claimant
91
81
  params['claimant']
92
82
  end
93
83
 
84
+ # Claim task and assign token to claimant
85
+ def claim(token)
86
+ set_claimant(token)
87
+ end
88
+
94
89
  # true if task is claimed
95
90
  def claimed?
96
91
  !claimant.nil?
@@ -98,12 +93,21 @@ module Bumbleworks
98
93
 
99
94
  # release claim on task.
100
95
  def release
101
- claim(nil)
96
+ set_claimant(nil)
102
97
  end
103
98
 
104
99
  private
105
100
  def storage_participant
106
101
  self.class.storage_participant
107
102
  end
103
+
104
+ def set_claimant(token)
105
+ if token && claimant && token != claimant
106
+ raise AlreadyClaimed, "Already claimed by #{claimant}"
107
+ end
108
+
109
+ params['claimant'] = token
110
+ save
111
+ end
108
112
  end
109
113
  end
@@ -1,3 +1,3 @@
1
1
  module Bumbleworks
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
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.8
4
+ version: 0.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-05-22 00:00:00.000000000 Z
15
+ date: 2013-06-26 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: ruote
@@ -163,6 +163,7 @@ files:
163
163
  - Rakefile
164
164
  - bumbleworks.gemspec
165
165
  - doc/GUIDE.md
166
+ - doc/QUICKSTART.md
166
167
  - doc/TERMS.md
167
168
  - lib/bumbleworks.rb
168
169
  - lib/bumbleworks/configuration.rb
@@ -216,12 +217,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
217
  - - ! '>='
217
218
  - !ruby/object:Gem::Version
218
219
  version: '0'
220
+ segments:
221
+ - 0
222
+ hash: -2621503672602724538
219
223
  required_rubygems_version: !ruby/object:Gem::Requirement
220
224
  none: false
221
225
  requirements:
222
226
  - - ! '>='
223
227
  - !ruby/object:Gem::Version
224
228
  version: '0'
229
+ segments:
230
+ - 0
231
+ hash: -2621503672602724538
225
232
  requirements: []
226
233
  rubyforge_project:
227
234
  rubygems_version: 1.8.23
@@ -255,4 +262,3 @@ test_files:
255
262
  - spec/lib/bumbleworks_spec.rb
256
263
  - spec/spec_helper.rb
257
264
  - spec/support/path_helpers.rb
258
- has_rdoc: