ruote 2.1.11 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.txt +60 -0
- data/CREDITS.txt +22 -4
- data/LICENSE.txt +1 -1
- data/README.rdoc +6 -7
- data/Rakefile +58 -59
- data/TODO.txt +137 -65
- data/couch_url.txt +1 -0
- data/jruby_issue.txt +32 -0
- data/lib/ruote.rb +1 -1
- data/lib/ruote/context.rb +12 -10
- data/lib/ruote/engine.rb +280 -145
- data/lib/ruote/engine/process_error.rb +5 -5
- data/lib/ruote/engine/process_status.rb +47 -28
- data/lib/ruote/exp/command.rb +7 -10
- data/lib/ruote/exp/commanded.rb +2 -2
- data/lib/ruote/exp/condition.rb +130 -43
- data/lib/ruote/exp/fe_add_branches.rb +2 -2
- data/lib/ruote/exp/fe_apply.rb +1 -1
- data/lib/ruote/exp/fe_cancel_process.rb +3 -3
- data/lib/ruote/exp/fe_command.rb +3 -3
- data/lib/ruote/exp/fe_concurrence.rb +4 -4
- data/lib/ruote/exp/fe_concurrent_iterator.rb +17 -5
- data/lib/ruote/exp/fe_cron.rb +3 -3
- data/lib/ruote/exp/fe_cursor.rb +5 -5
- data/lib/ruote/exp/fe_define.rb +3 -3
- data/lib/ruote/exp/fe_echo.rb +3 -3
- data/lib/ruote/exp/fe_equals.rb +2 -2
- data/lib/ruote/exp/fe_error.rb +2 -2
- data/lib/ruote/exp/fe_filter.rb +519 -0
- data/lib/ruote/exp/fe_forget.rb +9 -2
- data/lib/ruote/exp/fe_given.rb +154 -0
- data/lib/ruote/exp/fe_if.rb +16 -13
- data/lib/ruote/exp/fe_inc.rb +3 -3
- data/lib/ruote/exp/fe_iterator.rb +4 -4
- data/lib/ruote/exp/fe_let.rb +75 -0
- data/lib/ruote/exp/fe_listen.rb +68 -12
- data/lib/ruote/exp/fe_lose.rb +110 -0
- data/lib/ruote/exp/fe_noop.rb +1 -1
- data/lib/ruote/exp/{fe_when.rb → fe_once.rb} +25 -21
- data/lib/ruote/exp/fe_participant.rb +14 -17
- data/lib/ruote/exp/fe_redo.rb +10 -6
- data/lib/ruote/exp/fe_ref.rb +1 -1
- data/lib/ruote/exp/fe_registerp.rb +112 -0
- data/lib/ruote/exp/fe_reserve.rb +3 -3
- data/lib/ruote/exp/fe_restore.rb +2 -2
- data/lib/ruote/exp/fe_save.rb +2 -2
- data/lib/ruote/exp/fe_sequence.rb +3 -4
- data/lib/ruote/exp/fe_set.rb +16 -7
- data/lib/ruote/exp/fe_subprocess.rb +23 -1
- data/lib/ruote/exp/fe_that.rb +92 -0
- data/lib/ruote/exp/fe_undo.rb +3 -3
- data/lib/ruote/exp/fe_unregisterp.rb +71 -0
- data/lib/ruote/exp/fe_wait.rb +2 -2
- data/lib/ruote/exp/flowexpression.rb +153 -78
- data/lib/ruote/exp/iterator.rb +2 -2
- data/lib/ruote/exp/merge.rb +2 -2
- data/lib/ruote/exp/ro_attributes.rb +14 -12
- data/lib/ruote/exp/ro_filters.rb +136 -0
- data/lib/ruote/exp/ro_persist.rb +51 -35
- data/lib/ruote/exp/ro_variables.rb +18 -27
- data/lib/ruote/fei.rb +73 -33
- data/lib/ruote/id/mnemo_wfid_generator.rb +1 -1
- data/lib/ruote/id/wfid_generator.rb +11 -4
- data/lib/ruote/log/default_history.rb +122 -0
- data/lib/ruote/log/pretty.rb +36 -8
- data/lib/ruote/log/storage_history.rb +37 -5
- data/lib/ruote/log/test_logger.rb +26 -24
- data/lib/ruote/log/wait_logger.rb +5 -3
- data/lib/ruote/part/block_participant.rb +22 -11
- data/lib/ruote/part/engine_participant.rb +6 -7
- data/lib/ruote/part/local_participant.rb +6 -12
- data/lib/ruote/part/no_op_participant.rb +4 -4
- data/lib/ruote/part/null_participant.rb +4 -4
- data/lib/ruote/part/smtp_participant.rb +4 -4
- data/lib/ruote/part/storage_participant.rb +40 -20
- data/lib/ruote/part/template.rb +4 -4
- data/lib/ruote/participant.rb +0 -1
- data/lib/ruote/{parser.rb → reader.rb} +30 -25
- data/lib/ruote/{parser → reader}/ruby_dsl.rb +28 -11
- data/lib/ruote/{parser → reader}/xml.rb +6 -5
- data/lib/ruote/receiver/base.rb +35 -13
- data/lib/ruote/storage/base.rb +20 -18
- data/lib/ruote/storage/composite_storage.rb +10 -10
- data/lib/ruote/storage/fs_storage.rb +17 -10
- data/lib/ruote/storage/hash_storage.rb +29 -18
- data/lib/ruote/svc/dispatch_pool.rb +41 -14
- data/lib/ruote/svc/dollar_sub.rb +50 -17
- data/lib/ruote/svc/error_handler.rb +19 -11
- data/lib/ruote/svc/expression_map.rb +4 -4
- data/lib/ruote/svc/participant_list.rb +105 -100
- data/lib/ruote/svc/tracker.rb +58 -18
- data/lib/ruote/svc/treechecker.rb +51 -24
- data/lib/ruote/tree_dot.rb +4 -4
- data/lib/ruote/util/filter.rb +440 -0
- data/lib/ruote/util/hashdot.rb +4 -4
- data/lib/ruote/util/look.rb +2 -6
- data/lib/ruote/util/lookup.rb +9 -7
- data/lib/ruote/util/misc.rb +40 -8
- data/lib/ruote/util/ometa.rb +1 -1
- data/lib/ruote/util/serializer.rb +4 -4
- data/lib/ruote/util/subprocess.rb +29 -9
- data/lib/ruote/util/time.rb +4 -4
- data/lib/ruote/util/tree.rb +3 -3
- data/lib/ruote/version.rb +2 -2
- data/lib/ruote/worker.rb +55 -32
- data/lib/ruote/workitem.rb +64 -11
- data/ruote.gemspec +31 -302
- data/test/bm/launch_bench.rb +37 -0
- data/test/functional/base.rb +60 -18
- data/test/functional/concurrent_base.rb +2 -2
- data/test/functional/ct_0_concurrence.rb +1 -1
- data/test/functional/ct_1_iterator.rb +1 -1
- data/test/functional/ct_2_cancel.rb +1 -1
- data/test/functional/eft_0_process_definition.rb +2 -2
- data/test/functional/eft_10_cancel_process.rb +1 -1
- data/test/functional/eft_11_wait.rb +19 -11
- data/test/functional/eft_12_listen.rb +79 -13
- data/test/functional/eft_13_iterator.rb +13 -10
- data/test/functional/eft_14_cursor.rb +98 -9
- data/test/functional/eft_15_loop.rb +6 -4
- data/test/functional/eft_16_if.rb +12 -0
- data/test/functional/eft_18_concurrent_iterator.rb +31 -32
- data/test/functional/eft_19_reserve.rb +4 -4
- data/test/functional/eft_1_echo.rb +9 -0
- data/test/functional/eft_20_save.rb +4 -4
- data/test/functional/{eft_28_when.rb → eft_28_once.rb} +33 -7
- data/test/functional/eft_30_ref.rb +17 -2
- data/test/functional/eft_31_registerp.rb +130 -0
- data/test/functional/eft_32_lose.rb +93 -0
- data/test/functional/eft_33_let.rb +31 -0
- data/test/functional/eft_34_given.rb +123 -0
- data/test/functional/eft_35_filter.rb +269 -0
- data/test/functional/eft_3_participant.rb +4 -6
- data/test/functional/eft_4_set.rb +16 -2
- data/test/functional/eft_5_subprocess.rb +2 -4
- data/test/functional/eft_6_concurrence.rb +29 -29
- data/test/functional/eft_8_undo.rb +39 -3
- data/test/functional/eft_9_redo.rb +94 -2
- data/test/functional/ft_10_dollar.rb +81 -2
- data/test/functional/ft_11_recursion.rb +13 -17
- data/test/functional/ft_12_launchitem.rb +9 -5
- data/test/functional/ft_13_variables.rb +7 -9
- data/test/functional/ft_14_re_apply.rb +6 -9
- data/test/functional/ft_15_timeout.rb +18 -18
- data/test/functional/ft_16_participant_params.rb +1 -3
- data/test/functional/ft_17_conditional.rb +25 -2
- data/test/functional/ft_18_kill.rb +65 -12
- data/test/functional/ft_1_process_status.rb +147 -71
- data/test/functional/ft_20_storage_participant.rb +0 -1
- data/test/functional/ft_21_forget.rb +82 -1
- data/test/functional/{ft_24_block_participants.rb → ft_24_block_participant.rb} +42 -11
- data/test/functional/ft_25_receiver.rb +47 -17
- data/test/functional/{ft_26_participant_timeout.rb → ft_26_participant_rtimeout.rb} +56 -19
- data/test/functional/ft_29_part_template.rb +6 -5
- data/test/functional/ft_2_errors.rb +21 -37
- data/test/functional/ft_30_smtp_participant.rb +1 -1
- data/test/functional/ft_31_part_blocking.rb +8 -6
- data/test/functional/ft_34_cursor_rewind.rb +13 -10
- data/test/functional/ft_35_add_service.rb +1 -1
- data/test/functional/ft_36_storage_history.rb +24 -1
- data/test/functional/ft_37_default_history.rb +109 -0
- data/test/functional/ft_38_participant_more.rb +10 -10
- data/test/functional/ft_39_wait_for.rb +12 -9
- data/test/functional/ft_3_participant_registration.rb +111 -32
- data/test/functional/ft_40_wait_logger.rb +2 -1
- data/test/functional/ft_41_participants.rb +30 -4
- data/test/functional/ft_43_participant_on_reply.rb +6 -23
- data/test/functional/ft_45_participant_accept.rb +4 -4
- data/test/functional/ft_46_launch_single.rb +36 -2
- data/test/functional/ft_47_wfid_generator.rb +54 -0
- data/test/functional/ft_48_lose.rb +112 -0
- data/test/functional/ft_49_engine_on_error.rb +201 -0
- data/test/functional/ft_4_cancel.rb +66 -6
- data/test/functional/ft_50_engine_config.rb +22 -0
- data/test/functional/ft_51_misc.rb +67 -0
- data/test/functional/ft_52_case.rb +134 -0
- data/test/functional/ft_53_engine_on_terminate.rb +95 -0
- data/test/functional/ft_54_patterns.rb +104 -0
- data/test/functional/{ft_37_engine_participant.rb → ft_55_engine_participant.rb} +4 -5
- data/test/functional/ft_56_filter_attribute.rb +259 -0
- data/test/functional/ft_5_on_error.rb +77 -30
- data/test/functional/ft_6_on_cancel.rb +66 -11
- data/test/functional/ft_7_tags.rb +94 -5
- data/test/functional/ft_8_participant_consumption.rb +36 -5
- data/test/functional/ft_9_subprocesses.rb +10 -10
- data/test/functional/rt_1_listen.rb +3 -3
- data/test/functional/{rt_3_when.rb → rt_3_once.rb} +4 -4
- data/test/functional/storage_helper.rb +15 -13
- data/test/functional/test.rb +1 -3
- data/test/test_helper.rb +0 -8
- data/test/unit/storage.rb +154 -10
- data/test/unit/{ut_0_ruby_parser.rb → ut_0_ruby_reader.rb} +61 -11
- data/test/unit/ut_11_lookup.rb +7 -0
- data/test/unit/ut_13_serializer.rb +1 -1
- data/test/unit/ut_15_util.rb +23 -0
- data/test/unit/{ut_16_parser.rb → ut_16_reader.rb} +11 -13
- data/test/unit/ut_1_fei.rb +57 -10
- data/test/unit/ut_20_composite_storage.rb +25 -11
- data/test/unit/ut_21_participant_list.rb +47 -0
- data/test/unit/ut_22_filter.rb +903 -0
- data/test/unit/ut_3_wait_logger.rb +2 -6
- data/test/unit/ut_6_condition.rb +164 -17
- data/test/unit/ut_7_workitem.rb +28 -0
- data/test/unit/ut_8_tree_to_dot.rb +1 -1
- data/test/unit/{ut_9_xml_parser.rb → ut_9_xml_reader.rb} +5 -5
- metadata +108 -84
- data/.gitignore +0 -4
- data/examples/barley.rb +0 -391
- data/examples/flickr_report.rb +0 -107
- data/examples/pong.rb +0 -37
- data/examples/ruote_quickstart.rb +0 -43
- data/examples/web_first_page.rb +0 -68
- data/lib/ruote/part/hash_participant.rb +0 -91
- data/test/README.rdoc +0 -15
- data/test/functional/crunner.sh +0 -19
- data/test/pdef.xml +0 -7
- data/test/unit/ut_2_wfidgen.rb +0 -21
@@ -7,11 +7,7 @@
|
|
7
7
|
|
8
8
|
require File.join(File.dirname(__FILE__), '..', 'test_helper.rb')
|
9
9
|
|
10
|
-
require 'ruote
|
11
|
-
require 'ruote/engine'
|
12
|
-
require 'ruote/worker'
|
13
|
-
require 'ruote/storage/hash_storage'
|
14
|
-
require 'ruote/part/hash_participant'
|
10
|
+
require 'ruote'
|
15
11
|
|
16
12
|
|
17
13
|
class UtWaitLoggerTest < Test::Unit::TestCase
|
@@ -29,7 +25,7 @@ class UtWaitLoggerTest < Test::Unit::TestCase
|
|
29
25
|
|
30
26
|
#engine.context.logger.noisy = true
|
31
27
|
|
32
|
-
alpha = engine.register_participant :alpha, Ruote::
|
28
|
+
alpha = engine.register_participant :alpha, Ruote::StorageParticipant
|
33
29
|
|
34
30
|
engine.launch(pdef)
|
35
31
|
msg = engine.wait_for(:alpha)
|
data/test/unit/ut_6_condition.rb
CHANGED
@@ -13,27 +13,17 @@ require 'ruote/svc/expression_map'
|
|
13
13
|
|
14
14
|
class ConditionTest < Test::Unit::TestCase
|
15
15
|
|
16
|
-
class
|
16
|
+
class FakeExpression
|
17
17
|
|
18
|
-
def
|
19
|
-
return @tc if @tc
|
20
|
-
@tc = Ruote::TreeChecker.new
|
21
|
-
@tc.context = {}
|
22
|
-
@tc
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
class FakeExpression < Conditional
|
27
|
-
|
28
|
-
def initialize (h)
|
18
|
+
def initialize(h)
|
29
19
|
@h = h
|
30
20
|
end
|
31
|
-
def attribute
|
21
|
+
def attribute(k)
|
32
22
|
@h[k]
|
33
23
|
end
|
34
24
|
end
|
35
25
|
|
36
|
-
def assert_not_skip
|
26
|
+
def assert_not_skip(result, h)
|
37
27
|
|
38
28
|
fe = FakeExpression.new(h)
|
39
29
|
|
@@ -43,7 +33,12 @@ class ConditionTest < Test::Unit::TestCase
|
|
43
33
|
assert_equal result, Ruote::Exp::Condition.apply?(sif, sunless)
|
44
34
|
end
|
45
35
|
|
46
|
-
def assert_b
|
36
|
+
def assert_b(b, conditional=nil)
|
37
|
+
|
38
|
+
if conditional == nil
|
39
|
+
conditional = b
|
40
|
+
b = true
|
41
|
+
end
|
47
42
|
|
48
43
|
assert_equal(
|
49
44
|
b,
|
@@ -59,6 +54,8 @@ class ConditionTest < Test::Unit::TestCase
|
|
59
54
|
|
60
55
|
assert_not_skip true, :if => 'a == a'
|
61
56
|
assert_not_skip true, :if => '"a" == "a"'
|
57
|
+
|
58
|
+
assert_not_skip true, :if => 'blah blah blah'
|
62
59
|
end
|
63
60
|
|
64
61
|
def test_unless
|
@@ -109,7 +106,7 @@ class ConditionTest < Test::Unit::TestCase
|
|
109
106
|
assert_b true, 'alpha =~ al'
|
110
107
|
end
|
111
108
|
|
112
|
-
def
|
109
|
+
def test_number_comparison
|
113
110
|
|
114
111
|
assert_b true, 'b > a'
|
115
112
|
assert_b false, 'a > b'
|
@@ -120,9 +117,11 @@ class ConditionTest < Test::Unit::TestCase
|
|
120
117
|
|
121
118
|
def test_emptiness
|
122
119
|
|
123
|
-
assert_b
|
120
|
+
assert_b false, ' == '
|
124
121
|
assert_b false, " == ''"
|
125
122
|
assert_b false, ' == ""'
|
123
|
+
assert_b false, ' == a'
|
124
|
+
assert_b false, 'a == '
|
126
125
|
end
|
127
126
|
|
128
127
|
def test_strip
|
@@ -134,5 +133,153 @@ class ConditionTest < Test::Unit::TestCase
|
|
134
133
|
assert_not_skip true, :if => 'a == a'
|
135
134
|
assert_not_skip true, :if => 'a==a'
|
136
135
|
end
|
136
|
+
|
137
|
+
def test_boolean_literals
|
138
|
+
|
139
|
+
assert_b true, true
|
140
|
+
assert_b false, false
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_complex_strings
|
144
|
+
|
145
|
+
assert_b true, "'some dude' == 'some dude'"
|
146
|
+
assert_b true, "some dude == \"some dude\""
|
147
|
+
assert_b true, "some dude == 'some dude'"
|
148
|
+
end
|
149
|
+
|
150
|
+
def test_and_or
|
151
|
+
|
152
|
+
assert_b "1 and 2 and 3"
|
153
|
+
assert_b "1 && 2 && 3"
|
154
|
+
|
155
|
+
assert_b "1 or 2 or 3"
|
156
|
+
assert_b "1 || 2 || 3"
|
157
|
+
|
158
|
+
assert_b true, "true or false"
|
159
|
+
|
160
|
+
assert_b true, "true and (true or false)"
|
161
|
+
assert_b false, "true and (true and false)"
|
162
|
+
|
163
|
+
assert_b true, "'a' and ('b' and 'c')"
|
164
|
+
end
|
165
|
+
|
166
|
+
def test_not
|
167
|
+
|
168
|
+
assert_b true, "not false"
|
169
|
+
assert_b false, "not true"
|
170
|
+
assert_b true, "! false"
|
171
|
+
assert_b false, " ! true"
|
172
|
+
end
|
173
|
+
|
174
|
+
def assert_e(target, code)
|
175
|
+
|
176
|
+
assert_equal(
|
177
|
+
target,
|
178
|
+
Ruote::Exp::Condition.eval(code),
|
179
|
+
">#{code}< was expected to eval to #{target.inspect}")
|
180
|
+
end
|
181
|
+
|
182
|
+
def test_eval
|
183
|
+
|
184
|
+
assert_e nil, "nil"
|
185
|
+
|
186
|
+
assert_e true, "true"
|
187
|
+
assert_e false, "false"
|
188
|
+
assert_e 'alice', '"alice"'
|
189
|
+
assert_e 1, '1'
|
190
|
+
|
191
|
+
assert_e([ 1, 2, 3 ], "[ 1, 2, 3 ]")
|
192
|
+
assert_e({ 'a' => 2, 'b' => 2.0 }, "{ 'a' => 2, 'b' => 2.0 }")
|
193
|
+
|
194
|
+
assert_e /^a/, "/^a/"
|
195
|
+
|
196
|
+
assert_e 'Loan', 'Loan'
|
197
|
+
assert_e 'Loan/Grant', 'Loan/Grant'
|
198
|
+
assert_e 'Loan/Grant', 'Loan / Grant'
|
199
|
+
end
|
200
|
+
|
201
|
+
def test_is_empty
|
202
|
+
|
203
|
+
assert_b "'' empty"
|
204
|
+
assert_b "'' is empty"
|
205
|
+
assert_b '"" empty'
|
206
|
+
assert_b '"" is empty'
|
207
|
+
|
208
|
+
assert_b "[] empty"
|
209
|
+
assert_b "[] is empty"
|
210
|
+
|
211
|
+
assert_b "{} empty"
|
212
|
+
assert_b "{} is empty"
|
213
|
+
|
214
|
+
assert_b false, "[1] is empty"
|
215
|
+
assert_b false, "{1=>2} is empty"
|
216
|
+
end
|
217
|
+
|
218
|
+
def test_is_not_empty
|
219
|
+
|
220
|
+
assert_b false, "'' not empty"
|
221
|
+
assert_b false, "'' is not empty"
|
222
|
+
assert_b false, '"" not empty'
|
223
|
+
assert_b false, '"" is not empty'
|
224
|
+
|
225
|
+
assert_b false, "[] not empty"
|
226
|
+
assert_b false, "[] is not empty"
|
227
|
+
|
228
|
+
assert_b false, "{} not empty"
|
229
|
+
assert_b false, "{} is not empty"
|
230
|
+
|
231
|
+
assert_b true, "[1] is not empty"
|
232
|
+
assert_b true, "{1=>2} is not empty"
|
233
|
+
end
|
234
|
+
|
235
|
+
def test_null
|
236
|
+
|
237
|
+
assert_b "nil == nil"
|
238
|
+
assert_b "1 != nil"
|
239
|
+
assert_b false, "1 == nil"
|
240
|
+
assert_b false, "nil != nil"
|
241
|
+
|
242
|
+
assert_b "nil null"
|
243
|
+
assert_b "nil is null"
|
244
|
+
|
245
|
+
assert_b false, "nil not null"
|
246
|
+
assert_b false, "nil is not null"
|
247
|
+
|
248
|
+
assert_b false, "1 null"
|
249
|
+
assert_b false, "1 is null"
|
250
|
+
|
251
|
+
assert_b true, "1 not null"
|
252
|
+
assert_b true, "1 is not null"
|
253
|
+
end
|
254
|
+
|
255
|
+
def test_in
|
256
|
+
|
257
|
+
assert_b "1 in [1, 2]"
|
258
|
+
assert_b "1 in {1 => 2}"
|
259
|
+
|
260
|
+
assert_b false, "3 in [1, 2]"
|
261
|
+
assert_b false, "2 in {1 => 2}"
|
262
|
+
end
|
263
|
+
|
264
|
+
def test_not_in
|
265
|
+
|
266
|
+
assert_b "7 not in [1, 2]"
|
267
|
+
assert_b "2 not in {1 => 2}"
|
268
|
+
|
269
|
+
assert_b false, "1 not in [1, 2]"
|
270
|
+
assert_b false, "1 not in {1 => 2}"
|
271
|
+
end
|
272
|
+
|
273
|
+
def test_in_gone_bad
|
274
|
+
|
275
|
+
assert_b false, "1 in [1 2]"
|
276
|
+
assert_b false, "1 in {x}"
|
277
|
+
end
|
278
|
+
|
279
|
+
def test_comparators
|
280
|
+
|
281
|
+
assert_b "alpha =~ /^a/"
|
282
|
+
assert_b false, "alpha =~ /^b/"
|
283
|
+
end
|
137
284
|
end
|
138
285
|
|
data/test/unit/ut_7_workitem.rb
CHANGED
@@ -10,6 +10,9 @@ require File.join(File.dirname(__FILE__), '..', 'test_helper.rb')
|
|
10
10
|
require 'ruote/fei'
|
11
11
|
require 'ruote/workitem'
|
12
12
|
|
13
|
+
require_json
|
14
|
+
require 'rufus/json'
|
15
|
+
|
13
16
|
|
14
17
|
class UtWorkitemTest < Test::Unit::TestCase
|
15
18
|
|
@@ -67,5 +70,30 @@ class UtWorkitemTest < Test::Unit::TestCase
|
|
67
70
|
|
68
71
|
assert_equal '20101224-baba', w0.wfid
|
69
72
|
end
|
73
|
+
|
74
|
+
WI = {
|
75
|
+
'fei' => {
|
76
|
+
'expid' => '0',
|
77
|
+
'wfid' => '20101224-baba',
|
78
|
+
'engine_id' => 'engine',
|
79
|
+
'subid' => '123423fde6' },
|
80
|
+
'participant_name' => 'john',
|
81
|
+
'fields' => {
|
82
|
+
'customer' => 'swissre'
|
83
|
+
}
|
84
|
+
}
|
85
|
+
WI_JSON = ::Rufus::Json.encode(WI)
|
86
|
+
WI_PRETTY_JSON = ::Rufus::Json.pretty_encode(WI)
|
87
|
+
|
88
|
+
def test_from_json
|
89
|
+
|
90
|
+
assert_equal WI, Ruote::Workitem.from_json(WI_JSON).h
|
91
|
+
assert_equal WI, Ruote::Workitem.from_json(WI_PRETTY_JSON).h
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_as_json
|
95
|
+
|
96
|
+
assert_equal WI, Rufus::Json.decode(Ruote::Workitem.new(WI).as_json)
|
97
|
+
end
|
70
98
|
end
|
71
99
|
|
@@ -7,14 +7,14 @@
|
|
7
7
|
|
8
8
|
require File.join(File.dirname(__FILE__), '..', 'test_helper.rb')
|
9
9
|
|
10
|
-
require 'ruote/
|
10
|
+
require 'ruote/reader/xml'
|
11
11
|
|
12
12
|
|
13
|
-
class
|
13
|
+
class XmlReaderTest < Test::Unit::TestCase
|
14
14
|
|
15
15
|
def test_sequence
|
16
16
|
|
17
|
-
tree = Ruote::
|
17
|
+
tree = Ruote::XmlReader.read(%{
|
18
18
|
<define name="nada">
|
19
19
|
<sequence>
|
20
20
|
<alpha/>
|
@@ -32,7 +32,7 @@ class RubyParserTest < Test::Unit::TestCase
|
|
32
32
|
|
33
33
|
def test_echo
|
34
34
|
|
35
|
-
tree = Ruote::
|
35
|
+
tree = Ruote::XmlReader.read(%{
|
36
36
|
<process-definition name="nada">
|
37
37
|
<echo>la vida loca</echo>
|
38
38
|
</process-definition>
|
@@ -45,7 +45,7 @@ class RubyParserTest < Test::Unit::TestCase
|
|
45
45
|
|
46
46
|
def test_concurrent_iterator
|
47
47
|
|
48
|
-
tree = Ruote::
|
48
|
+
tree = Ruote::XmlReader.read(%{
|
49
49
|
<process-definition name="nada">
|
50
50
|
<concurrent-iterator on-field="toti" to-field="toto">
|
51
51
|
</concurrent-iterator>
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 2
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 2.
|
7
|
+
- 2
|
8
|
+
- 0
|
9
|
+
version: 2.2.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- John Mettraux
|
@@ -16,107 +16,119 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date:
|
19
|
+
date: 2011-03-01 00:00:00 +09:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
|
-
name:
|
23
|
+
name: sourcify
|
24
24
|
prerelease: false
|
25
25
|
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
26
27
|
requirements:
|
27
|
-
- - "
|
28
|
+
- - "="
|
28
29
|
- !ruby/object:Gem::Version
|
29
30
|
segments:
|
30
31
|
- 0
|
32
|
+
- 4
|
31
33
|
- 2
|
32
|
-
|
33
|
-
version: 0.2.5
|
34
|
+
version: 0.4.2
|
34
35
|
type: :runtime
|
35
36
|
version_requirements: *id001
|
36
37
|
- !ruby/object:Gem::Dependency
|
37
|
-
name: rufus-
|
38
|
+
name: rufus-json
|
38
39
|
prerelease: false
|
39
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
40
42
|
requirements:
|
41
43
|
- - ">="
|
42
44
|
- !ruby/object:Gem::Version
|
43
45
|
segments:
|
44
46
|
- 0
|
45
|
-
-
|
46
|
-
-
|
47
|
-
version: 0.
|
47
|
+
- 2
|
48
|
+
- 5
|
49
|
+
version: 0.2.5
|
48
50
|
type: :runtime
|
49
51
|
version_requirements: *id002
|
50
52
|
- !ruby/object:Gem::Dependency
|
51
|
-
name: rufus-
|
53
|
+
name: rufus-cloche
|
52
54
|
prerelease: false
|
53
55
|
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
54
57
|
requirements:
|
55
58
|
- - ">="
|
56
59
|
- !ruby/object:Gem::Version
|
57
60
|
segments:
|
58
61
|
- 0
|
59
|
-
|
62
|
+
- 1
|
63
|
+
- 20
|
64
|
+
version: 0.1.20
|
60
65
|
type: :runtime
|
61
66
|
version_requirements: *id003
|
62
67
|
- !ruby/object:Gem::Dependency
|
63
|
-
name: rufus-
|
68
|
+
name: rufus-dollar
|
64
69
|
prerelease: false
|
65
70
|
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
66
72
|
requirements:
|
67
73
|
- - ">="
|
68
74
|
- !ruby/object:Gem::Version
|
69
75
|
segments:
|
70
76
|
- 1
|
71
|
-
- 1
|
72
77
|
- 0
|
73
|
-
|
78
|
+
- 4
|
79
|
+
version: 1.0.4
|
74
80
|
type: :runtime
|
75
81
|
version_requirements: *id004
|
76
82
|
- !ruby/object:Gem::Dependency
|
77
|
-
name: rufus-
|
83
|
+
name: rufus-mnemo
|
78
84
|
prerelease: false
|
79
85
|
requirement: &id005 !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
80
87
|
requirements:
|
81
88
|
- - ">="
|
82
89
|
- !ruby/object:Gem::Version
|
83
90
|
segments:
|
84
|
-
-
|
91
|
+
- 1
|
92
|
+
- 1
|
85
93
|
- 0
|
86
|
-
|
87
|
-
version: 2.0.5
|
94
|
+
version: 1.1.0
|
88
95
|
type: :runtime
|
89
96
|
version_requirements: *id005
|
90
97
|
- !ruby/object:Gem::Dependency
|
91
|
-
name: rufus-
|
98
|
+
name: rufus-scheduler
|
92
99
|
prerelease: false
|
93
100
|
requirement: &id006 !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
94
102
|
requirements:
|
95
103
|
- - ">="
|
96
104
|
- !ruby/object:Gem::Version
|
97
105
|
segments:
|
98
|
-
-
|
106
|
+
- 2
|
99
107
|
- 0
|
100
|
-
-
|
101
|
-
version:
|
108
|
+
- 8
|
109
|
+
version: 2.0.8
|
102
110
|
type: :runtime
|
103
111
|
version_requirements: *id006
|
104
112
|
- !ruby/object:Gem::Dependency
|
105
|
-
name:
|
113
|
+
name: rufus-treechecker
|
106
114
|
prerelease: false
|
107
115
|
requirement: &id007 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
108
117
|
requirements:
|
109
118
|
- - ">="
|
110
119
|
- !ruby/object:Gem::Version
|
111
120
|
segments:
|
121
|
+
- 1
|
112
122
|
- 0
|
113
|
-
|
114
|
-
|
123
|
+
- 4
|
124
|
+
version: 1.0.4
|
125
|
+
type: :runtime
|
115
126
|
version_requirements: *id007
|
116
127
|
- !ruby/object:Gem::Dependency
|
117
|
-
name:
|
128
|
+
name: rake
|
118
129
|
prerelease: false
|
119
130
|
requirement: &id008 !ruby/object:Gem::Requirement
|
131
|
+
none: false
|
120
132
|
requirements:
|
121
133
|
- - ">="
|
122
134
|
- !ruby/object:Gem::Version
|
@@ -129,6 +141,7 @@ dependencies:
|
|
129
141
|
name: json
|
130
142
|
prerelease: false
|
131
143
|
requirement: &id009 !ruby/object:Gem::Requirement
|
144
|
+
none: false
|
132
145
|
requirements:
|
133
146
|
- - ">="
|
134
147
|
- !ruby/object:Gem::Version
|
@@ -141,6 +154,7 @@ dependencies:
|
|
141
154
|
name: builder
|
142
155
|
prerelease: false
|
143
156
|
requirement: &id010 !ruby/object:Gem::Requirement
|
157
|
+
none: false
|
144
158
|
requirements:
|
145
159
|
- - ">="
|
146
160
|
- !ruby/object:Gem::Version
|
@@ -153,6 +167,7 @@ dependencies:
|
|
153
167
|
name: mailtrap
|
154
168
|
prerelease: false
|
155
169
|
requirement: &id011 !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
156
171
|
requirements:
|
157
172
|
- - ">="
|
158
173
|
- !ruby/object:Gem::Version
|
@@ -161,46 +176,22 @@ dependencies:
|
|
161
176
|
version: "0"
|
162
177
|
type: :development
|
163
178
|
version_requirements: *id011
|
164
|
-
- !ruby/object:Gem::Dependency
|
165
|
-
name: jeweler
|
166
|
-
prerelease: false
|
167
|
-
requirement: &id012 !ruby/object:Gem::Requirement
|
168
|
-
requirements:
|
169
|
-
- - ">="
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
segments:
|
172
|
-
- 0
|
173
|
-
version: "0"
|
174
|
-
type: :development
|
175
|
-
version_requirements: *id012
|
176
179
|
description: "\n\
|
177
|
-
ruote is an open source
|
178
|
-
email:
|
180
|
+
ruote is an open source Ruby workflow engine\n "
|
181
|
+
email:
|
182
|
+
- jmettraux@gmail.com
|
179
183
|
executables: []
|
180
184
|
|
181
185
|
extensions: []
|
182
186
|
|
183
|
-
extra_rdoc_files:
|
184
|
-
|
185
|
-
- README.rdoc
|
187
|
+
extra_rdoc_files: []
|
188
|
+
|
186
189
|
files:
|
187
|
-
- .gitignore
|
188
|
-
- CHANGELOG.txt
|
189
|
-
- CREDITS.txt
|
190
|
-
- LICENSE.txt
|
191
|
-
- README.rdoc
|
192
190
|
- Rakefile
|
193
|
-
- TODO.txt
|
194
|
-
- examples/barley.rb
|
195
|
-
- examples/flickr_report.rb
|
196
|
-
- examples/pong.rb
|
197
|
-
- examples/ruote_quickstart.rb
|
198
|
-
- examples/web_first_page.rb
|
199
|
-
- lib/ruote.rb
|
200
191
|
- lib/ruote/context.rb
|
201
|
-
- lib/ruote/engine.rb
|
202
192
|
- lib/ruote/engine/process_error.rb
|
203
193
|
- lib/ruote/engine/process_status.rb
|
194
|
+
- lib/ruote/engine.rb
|
204
195
|
- lib/ruote/exp/command.rb
|
205
196
|
- lib/ruote/exp/commanded.rb
|
206
197
|
- lib/ruote/exp/condition.rb
|
@@ -216,43 +207,48 @@ files:
|
|
216
207
|
- lib/ruote/exp/fe_echo.rb
|
217
208
|
- lib/ruote/exp/fe_equals.rb
|
218
209
|
- lib/ruote/exp/fe_error.rb
|
210
|
+
- lib/ruote/exp/fe_filter.rb
|
219
211
|
- lib/ruote/exp/fe_forget.rb
|
212
|
+
- lib/ruote/exp/fe_given.rb
|
220
213
|
- lib/ruote/exp/fe_if.rb
|
221
214
|
- lib/ruote/exp/fe_inc.rb
|
222
215
|
- lib/ruote/exp/fe_iterator.rb
|
216
|
+
- lib/ruote/exp/fe_let.rb
|
223
217
|
- lib/ruote/exp/fe_listen.rb
|
218
|
+
- lib/ruote/exp/fe_lose.rb
|
224
219
|
- lib/ruote/exp/fe_noop.rb
|
220
|
+
- lib/ruote/exp/fe_once.rb
|
225
221
|
- lib/ruote/exp/fe_participant.rb
|
226
222
|
- lib/ruote/exp/fe_redo.rb
|
227
223
|
- lib/ruote/exp/fe_ref.rb
|
224
|
+
- lib/ruote/exp/fe_registerp.rb
|
228
225
|
- lib/ruote/exp/fe_reserve.rb
|
229
226
|
- lib/ruote/exp/fe_restore.rb
|
230
227
|
- lib/ruote/exp/fe_save.rb
|
231
228
|
- lib/ruote/exp/fe_sequence.rb
|
232
229
|
- lib/ruote/exp/fe_set.rb
|
233
230
|
- lib/ruote/exp/fe_subprocess.rb
|
231
|
+
- lib/ruote/exp/fe_that.rb
|
234
232
|
- lib/ruote/exp/fe_undo.rb
|
233
|
+
- lib/ruote/exp/fe_unregisterp.rb
|
235
234
|
- lib/ruote/exp/fe_wait.rb
|
236
|
-
- lib/ruote/exp/fe_when.rb
|
237
235
|
- lib/ruote/exp/flowexpression.rb
|
238
236
|
- lib/ruote/exp/iterator.rb
|
239
237
|
- lib/ruote/exp/merge.rb
|
240
238
|
- lib/ruote/exp/ro_attributes.rb
|
239
|
+
- lib/ruote/exp/ro_filters.rb
|
241
240
|
- lib/ruote/exp/ro_persist.rb
|
242
241
|
- lib/ruote/exp/ro_variables.rb
|
243
242
|
- lib/ruote/fei.rb
|
244
243
|
- lib/ruote/id/mnemo_wfid_generator.rb
|
245
244
|
- lib/ruote/id/wfid_generator.rb
|
245
|
+
- lib/ruote/log/default_history.rb
|
246
246
|
- lib/ruote/log/pretty.rb
|
247
247
|
- lib/ruote/log/storage_history.rb
|
248
248
|
- lib/ruote/log/test_logger.rb
|
249
249
|
- lib/ruote/log/wait_logger.rb
|
250
|
-
- lib/ruote/parser.rb
|
251
|
-
- lib/ruote/parser/ruby_dsl.rb
|
252
|
-
- lib/ruote/parser/xml.rb
|
253
250
|
- lib/ruote/part/block_participant.rb
|
254
251
|
- lib/ruote/part/engine_participant.rb
|
255
|
-
- lib/ruote/part/hash_participant.rb
|
256
252
|
- lib/ruote/part/local_participant.rb
|
257
253
|
- lib/ruote/part/no_op_participant.rb
|
258
254
|
- lib/ruote/part/null_participant.rb
|
@@ -260,6 +256,9 @@ files:
|
|
260
256
|
- lib/ruote/part/storage_participant.rb
|
261
257
|
- lib/ruote/part/template.rb
|
262
258
|
- lib/ruote/participant.rb
|
259
|
+
- lib/ruote/reader/ruby_dsl.rb
|
260
|
+
- lib/ruote/reader/xml.rb
|
261
|
+
- lib/ruote/reader.rb
|
263
262
|
- lib/ruote/receiver/base.rb
|
264
263
|
- lib/ruote/storage/base.rb
|
265
264
|
- lib/ruote/storage/composite_storage.rb
|
@@ -273,6 +272,7 @@ files:
|
|
273
272
|
- lib/ruote/svc/tracker.rb
|
274
273
|
- lib/ruote/svc/treechecker.rb
|
275
274
|
- lib/ruote/tree_dot.rb
|
275
|
+
- lib/ruote/util/filter.rb
|
276
276
|
- lib/ruote/util/hashdot.rb
|
277
277
|
- lib/ruote/util/look.rb
|
278
278
|
- lib/ruote/util/lookup.rb
|
@@ -285,12 +285,11 @@ files:
|
|
285
285
|
- lib/ruote/version.rb
|
286
286
|
- lib/ruote/worker.rb
|
287
287
|
- lib/ruote/workitem.rb
|
288
|
-
-
|
289
|
-
- ruote.gemspec
|
290
|
-
- test/README.rdoc
|
288
|
+
- lib/ruote.rb
|
291
289
|
- test/bm/ci.rb
|
292
290
|
- test/bm/ici.rb
|
293
291
|
- test/bm/juuman.rb
|
292
|
+
- test/bm/launch_bench.rb
|
294
293
|
- test/bm/load_26c.rb
|
295
294
|
- test/bm/mega.rb
|
296
295
|
- test/bm/seq_thousand.rb
|
@@ -298,7 +297,6 @@ files:
|
|
298
297
|
- test/functional/base.rb
|
299
298
|
- test/functional/concurrent_base.rb
|
300
299
|
- test/functional/crunner.rb
|
301
|
-
- test/functional/crunner.sh
|
302
300
|
- test/functional/ct_0_concurrence.rb
|
303
301
|
- test/functional/ct_1_iterator.rb
|
304
302
|
- test/functional/ct_2_cancel.rb
|
@@ -322,10 +320,15 @@ files:
|
|
322
320
|
- test/functional/eft_25_command.rb
|
323
321
|
- test/functional/eft_26_error.rb
|
324
322
|
- test/functional/eft_27_inc.rb
|
325
|
-
- test/functional/
|
323
|
+
- test/functional/eft_28_once.rb
|
326
324
|
- test/functional/eft_29_cron.rb
|
327
325
|
- test/functional/eft_2_sequence.rb
|
328
326
|
- test/functional/eft_30_ref.rb
|
327
|
+
- test/functional/eft_31_registerp.rb
|
328
|
+
- test/functional/eft_32_lose.rb
|
329
|
+
- test/functional/eft_33_let.rb
|
330
|
+
- test/functional/eft_34_given.rb
|
331
|
+
- test/functional/eft_35_filter.rb
|
329
332
|
- test/functional/eft_3_participant.rb
|
330
333
|
- test/functional/eft_4_set.rb
|
331
334
|
- test/functional/eft_5_subprocess.rb
|
@@ -349,9 +352,9 @@ files:
|
|
349
352
|
- test/functional/ft_21_forget.rb
|
350
353
|
- test/functional/ft_22_process_definitions.rb
|
351
354
|
- test/functional/ft_23_load_defs.rb
|
352
|
-
- test/functional/
|
355
|
+
- test/functional/ft_24_block_participant.rb
|
353
356
|
- test/functional/ft_25_receiver.rb
|
354
|
-
- test/functional/
|
357
|
+
- test/functional/ft_26_participant_rtimeout.rb
|
355
358
|
- test/functional/ft_27_var_indirection.rb
|
356
359
|
- test/functional/ft_28_null_noop_participants.rb
|
357
360
|
- test/functional/ft_29_part_template.rb
|
@@ -362,7 +365,7 @@ files:
|
|
362
365
|
- test/functional/ft_34_cursor_rewind.rb
|
363
366
|
- test/functional/ft_35_add_service.rb
|
364
367
|
- test/functional/ft_36_storage_history.rb
|
365
|
-
- test/functional/
|
368
|
+
- test/functional/ft_37_default_history.rb
|
366
369
|
- test/functional/ft_38_participant_more.rb
|
367
370
|
- test/functional/ft_39_wait_for.rb
|
368
371
|
- test/functional/ft_3_participant_registration.rb
|
@@ -373,7 +376,17 @@ files:
|
|
373
376
|
- test/functional/ft_44_var_participant.rb
|
374
377
|
- test/functional/ft_45_participant_accept.rb
|
375
378
|
- test/functional/ft_46_launch_single.rb
|
379
|
+
- test/functional/ft_47_wfid_generator.rb
|
380
|
+
- test/functional/ft_48_lose.rb
|
381
|
+
- test/functional/ft_49_engine_on_error.rb
|
376
382
|
- test/functional/ft_4_cancel.rb
|
383
|
+
- test/functional/ft_50_engine_config.rb
|
384
|
+
- test/functional/ft_51_misc.rb
|
385
|
+
- test/functional/ft_52_case.rb
|
386
|
+
- test/functional/ft_53_engine_on_terminate.rb
|
387
|
+
- test/functional/ft_54_patterns.rb
|
388
|
+
- test/functional/ft_55_engine_participant.rb
|
389
|
+
- test/functional/ft_56_filter_attribute.rb
|
377
390
|
- test/functional/ft_5_on_error.rb
|
378
391
|
- test/functional/ft_6_on_cancel.rb
|
379
392
|
- test/functional/ft_7_tags.rb
|
@@ -383,7 +396,7 @@ files:
|
|
383
396
|
- test/functional/rt_0_wait.rb
|
384
397
|
- test/functional/rt_1_listen.rb
|
385
398
|
- test/functional/rt_2_errors.rb
|
386
|
-
- test/functional/
|
399
|
+
- test/functional/rt_3_once.rb
|
387
400
|
- test/functional/rt_4_cron.rb
|
388
401
|
- test/functional/rt_5_timeout.rb
|
389
402
|
- test/functional/rtest.rb
|
@@ -391,40 +404,50 @@ files:
|
|
391
404
|
- test/functional/test.rb
|
392
405
|
- test/functional/vertical.rb
|
393
406
|
- test/path_helper.rb
|
394
|
-
- test/pdef.xml
|
395
407
|
- test/test.rb
|
396
408
|
- test/test_helper.rb
|
397
409
|
- test/unit/storage.rb
|
398
410
|
- test/unit/storages.rb
|
399
411
|
- test/unit/test.rb
|
400
|
-
- test/unit/
|
412
|
+
- test/unit/ut_0_ruby_reader.rb
|
401
413
|
- test/unit/ut_11_lookup.rb
|
402
414
|
- test/unit/ut_13_serializer.rb
|
403
415
|
- test/unit/ut_14_is_uri.rb
|
404
416
|
- test/unit/ut_15_util.rb
|
405
|
-
- test/unit/
|
417
|
+
- test/unit/ut_16_reader.rb
|
406
418
|
- test/unit/ut_18_engine.rb
|
407
419
|
- test/unit/ut_19_part_template.rb
|
408
420
|
- test/unit/ut_1_fei.rb
|
409
421
|
- test/unit/ut_20_composite_storage.rb
|
410
|
-
- test/unit/
|
422
|
+
- test/unit/ut_21_participant_list.rb
|
423
|
+
- test/unit/ut_22_filter.rb
|
411
424
|
- test/unit/ut_3_wait_logger.rb
|
412
425
|
- test/unit/ut_4_expmap.rb
|
413
426
|
- test/unit/ut_5_tree.rb
|
414
427
|
- test/unit/ut_6_condition.rb
|
415
428
|
- test/unit/ut_7_workitem.rb
|
416
429
|
- test/unit/ut_8_tree_to_dot.rb
|
417
|
-
- test/unit/
|
430
|
+
- test/unit/ut_9_xml_reader.rb
|
431
|
+
- ruote.gemspec
|
432
|
+
- CHANGELOG.txt
|
433
|
+
- CREDITS.txt
|
434
|
+
- LICENSE.txt
|
435
|
+
- TODO.txt
|
436
|
+
- couch_url.txt
|
437
|
+
- jruby_issue.txt
|
438
|
+
- phil.txt
|
439
|
+
- README.rdoc
|
418
440
|
has_rdoc: true
|
419
441
|
homepage: http://ruote.rubyforge.org
|
420
442
|
licenses: []
|
421
443
|
|
422
444
|
post_install_message:
|
423
|
-
rdoc_options:
|
424
|
-
|
445
|
+
rdoc_options: []
|
446
|
+
|
425
447
|
require_paths:
|
426
448
|
- lib
|
427
449
|
required_ruby_version: !ruby/object:Gem::Requirement
|
450
|
+
none: false
|
428
451
|
requirements:
|
429
452
|
- - ">="
|
430
453
|
- !ruby/object:Gem::Version
|
@@ -432,6 +455,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
432
455
|
- 0
|
433
456
|
version: "0"
|
434
457
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
458
|
+
none: false
|
435
459
|
requirements:
|
436
460
|
- - ">="
|
437
461
|
- !ruby/object:Gem::Version
|
@@ -441,9 +465,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
441
465
|
requirements: []
|
442
466
|
|
443
467
|
rubyforge_project: ruote
|
444
|
-
rubygems_version: 1.3.
|
468
|
+
rubygems_version: 1.3.7
|
445
469
|
signing_key:
|
446
470
|
specification_version: 3
|
447
|
-
summary: an open source
|
448
|
-
test_files:
|
449
|
-
|
471
|
+
summary: an open source Ruby workflow engine
|
472
|
+
test_files: []
|
473
|
+
|