workflow 0.1 → 0.1.1
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/Rakefile +1 -1
- data/lib/workflow.rb +7 -1
- data/test/test_workflow.rb +35 -1
- metadata +2 -2
data/Rakefile
CHANGED
data/lib/workflow.rb
CHANGED
@@ -147,7 +147,13 @@ module Workflow
|
|
147
147
|
private
|
148
148
|
|
149
149
|
def spec
|
150
|
-
self.class
|
150
|
+
c = self.class
|
151
|
+
# using a simple loop instead of class_inheritable_accessor to avoid
|
152
|
+
# dependency on Rails' ActiveSupport
|
153
|
+
until c.workflow_spec || !(c.include? Workflow)
|
154
|
+
c = c.superclass
|
155
|
+
end
|
156
|
+
c.workflow_spec
|
151
157
|
end
|
152
158
|
|
153
159
|
def halt(reason = nil)
|
data/test/test_workflow.rb
CHANGED
@@ -215,4 +215,38 @@ class WorkflowTest < Test::Unit::TestCase
|
|
215
215
|
end
|
216
216
|
c.new.my_transition!(args)
|
217
217
|
end
|
218
|
-
|
218
|
+
|
219
|
+
test 'Single table inheritance (STI)' do
|
220
|
+
class BigOrder < Order
|
221
|
+
end
|
222
|
+
|
223
|
+
bo = BigOrder.new
|
224
|
+
assert bo.submitted?
|
225
|
+
assert !bo.accepted?
|
226
|
+
end
|
227
|
+
|
228
|
+
test 'Two-level inheritance' do
|
229
|
+
class BigOrder < Order
|
230
|
+
end
|
231
|
+
|
232
|
+
class EvenBiggerOrder < BigOrder
|
233
|
+
end
|
234
|
+
|
235
|
+
assert EvenBiggerOrder.new.submitted?
|
236
|
+
end
|
237
|
+
|
238
|
+
test 'Iheritance with workflow definition override' do
|
239
|
+
class BigOrder < Order
|
240
|
+
end
|
241
|
+
|
242
|
+
class SpecialBigOrder < BigOrder
|
243
|
+
workflow do
|
244
|
+
state :start_big
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
special = SpecialBigOrder.new
|
249
|
+
assert_equal 'start_big', special.current_state.to_s
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladimir Dobriakov
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-04-
|
12
|
+
date: 2009-04-29 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|