ruote 2.3.0.1 → 2.3.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. data/CHANGELOG.txt +23 -0
  2. data/CREDITS.txt +4 -0
  3. data/LICENSE.txt +1 -1
  4. data/lib/ruote.rb +2 -0
  5. data/lib/ruote/context.rb +2 -1
  6. data/lib/ruote/dashboard.rb +169 -13
  7. data/lib/ruote/dboard/mutation.rb +282 -0
  8. data/lib/ruote/dboard/process_error.rb +1 -1
  9. data/lib/ruote/dboard/process_status.rb +61 -48
  10. data/lib/ruote/engine.rb +1 -1
  11. data/lib/ruote/exp/command.rb +1 -1
  12. data/lib/ruote/exp/commanded.rb +1 -1
  13. data/lib/ruote/exp/condition.rb +2 -1
  14. data/lib/ruote/exp/fe_add_branches.rb +1 -1
  15. data/lib/ruote/exp/fe_apply.rb +1 -1
  16. data/lib/ruote/exp/fe_await.rb +97 -48
  17. data/lib/ruote/exp/fe_cancel_process.rb +1 -1
  18. data/lib/ruote/exp/fe_command.rb +2 -3
  19. data/lib/ruote/exp/fe_concurrence.rb +162 -66
  20. data/lib/ruote/exp/fe_concurrent_iterator.rb +25 -7
  21. data/lib/ruote/exp/fe_cron.rb +1 -1
  22. data/lib/ruote/exp/fe_cursor.rb +10 -11
  23. data/lib/ruote/exp/fe_define.rb +1 -1
  24. data/lib/ruote/exp/fe_echo.rb +1 -1
  25. data/lib/ruote/exp/fe_equals.rb +1 -1
  26. data/lib/ruote/exp/fe_error.rb +1 -1
  27. data/lib/ruote/exp/fe_filter.rb +1 -1
  28. data/lib/ruote/exp/fe_forget.rb +1 -1
  29. data/lib/ruote/exp/fe_given.rb +1 -1
  30. data/lib/ruote/exp/fe_if.rb +87 -7
  31. data/lib/ruote/exp/fe_inc.rb +1 -1
  32. data/lib/ruote/exp/fe_iterator.rb +1 -1
  33. data/lib/ruote/exp/fe_listen.rb +1 -1
  34. data/lib/ruote/exp/fe_lose.rb +1 -1
  35. data/lib/ruote/exp/fe_noop.rb +1 -1
  36. data/lib/ruote/exp/fe_on_error.rb +1 -1
  37. data/lib/ruote/exp/fe_once.rb +1 -1
  38. data/lib/ruote/exp/fe_participant.rb +49 -16
  39. data/lib/ruote/exp/fe_read.rb +1 -1
  40. data/lib/ruote/exp/fe_redo.rb +1 -1
  41. data/lib/ruote/exp/fe_ref.rb +1 -1
  42. data/lib/ruote/exp/fe_registerp.rb +1 -1
  43. data/lib/ruote/exp/fe_reserve.rb +1 -1
  44. data/lib/ruote/exp/fe_restore.rb +1 -7
  45. data/lib/ruote/exp/fe_save.rb +1 -1
  46. data/lib/ruote/exp/fe_sequence.rb +1 -1
  47. data/lib/ruote/exp/fe_set.rb +1 -1
  48. data/lib/ruote/exp/fe_stall.rb +1 -1
  49. data/lib/ruote/exp/fe_subprocess.rb +1 -1
  50. data/lib/ruote/exp/fe_that.rb +1 -1
  51. data/lib/ruote/exp/fe_undo.rb +1 -1
  52. data/lib/ruote/exp/fe_unregisterp.rb +1 -1
  53. data/lib/ruote/exp/fe_wait.rb +1 -1
  54. data/lib/ruote/exp/flow_expression.rb +117 -8
  55. data/lib/ruote/exp/iterator.rb +1 -1
  56. data/lib/ruote/exp/ro_attributes.rb +1 -1
  57. data/lib/ruote/exp/ro_filters.rb +1 -1
  58. data/lib/ruote/exp/ro_on_x.rb +4 -2
  59. data/lib/ruote/exp/ro_persist.rb +1 -1
  60. data/lib/ruote/exp/ro_timers.rb +1 -1
  61. data/lib/ruote/exp/ro_variables.rb +1 -1
  62. data/lib/ruote/extract.rb +125 -0
  63. data/lib/ruote/fei.rb +10 -73
  64. data/lib/ruote/id/mnemo_wfid_generator.rb +1 -1
  65. data/lib/ruote/id/wfid_generator.rb +1 -1
  66. data/lib/ruote/log/default_history.rb +17 -3
  67. data/lib/ruote/log/fancy_printing.rb +12 -32
  68. data/lib/ruote/log/storage_history.rb +1 -1
  69. data/lib/ruote/log/wait_logger.rb +15 -7
  70. data/lib/ruote/merge.rb +123 -0
  71. data/lib/ruote/observer.rb +1 -1
  72. data/lib/ruote/part/block_participant.rb +1 -1
  73. data/lib/ruote/part/code_participant.rb +1 -1
  74. data/lib/ruote/part/engine_participant.rb +1 -1
  75. data/lib/ruote/part/local_participant.rb +9 -1
  76. data/lib/ruote/part/no_op_participant.rb +1 -1
  77. data/lib/ruote/part/null_participant.rb +1 -1
  78. data/lib/ruote/part/participant.rb +1 -1
  79. data/lib/ruote/part/rev_participant.rb +1 -1
  80. data/lib/ruote/part/smtp_participant.rb +1 -1
  81. data/lib/ruote/part/storage_participant.rb +18 -1
  82. data/lib/ruote/part/template.rb +1 -1
  83. data/lib/ruote/reader.rb +1 -1
  84. data/lib/ruote/reader/json.rb +1 -1
  85. data/lib/ruote/reader/radial.rb +4 -4
  86. data/lib/ruote/reader/ruby_dsl.rb +1 -1
  87. data/lib/ruote/reader/xml.rb +1 -1
  88. data/lib/ruote/receiver/base.rb +13 -1
  89. data/lib/ruote/storage/base.rb +8 -14
  90. data/lib/ruote/storage/composite_storage.rb +1 -1
  91. data/lib/ruote/storage/fs_storage.rb +1 -1
  92. data/lib/ruote/storage/hash_storage.rb +2 -1
  93. data/lib/ruote/svc/dispatch_pool.rb +29 -18
  94. data/lib/ruote/svc/dollar_sub.rb +5 -8
  95. data/lib/ruote/svc/error_handler.rb +1 -1
  96. data/lib/ruote/svc/expression_map.rb +1 -1
  97. data/lib/ruote/svc/participant_list.rb +8 -5
  98. data/lib/ruote/svc/tracker.rb +154 -56
  99. data/lib/ruote/svc/treechecker.rb +1 -1
  100. data/lib/ruote/tree_dot.rb +1 -1
  101. data/lib/ruote/util/deep.rb +4 -2
  102. data/lib/ruote/util/filter.rb +1 -1
  103. data/lib/ruote/util/hashdot.rb +1 -1
  104. data/lib/ruote/util/look.rb +1 -1
  105. data/lib/ruote/util/lookup.rb +1 -1
  106. data/lib/ruote/util/misc.rb +51 -1
  107. data/lib/ruote/util/mpatch.rb +1 -1
  108. data/lib/ruote/util/ometa.rb +1 -1
  109. data/lib/ruote/util/subprocess.rb +1 -1
  110. data/lib/ruote/util/time.rb +3 -3
  111. data/lib/ruote/util/tree.rb +43 -4
  112. data/lib/ruote/version.rb +2 -2
  113. data/lib/ruote/worker.rb +30 -18
  114. data/lib/ruote/workitem.rb +1 -1
  115. data/ruote.gemspec +6 -2
  116. data/test/functional/base.rb +0 -1
  117. data/test/functional/concurrent_base.rb +1 -1
  118. data/test/functional/eft_14_cursor.rb +42 -52
  119. data/test/functional/eft_16_if.rb +24 -16
  120. data/test/functional/eft_18_concurrent_iterator.rb +31 -1
  121. data/test/functional/eft_6_concurrence.rb +149 -34
  122. data/test/functional/ft_10_dollar.rb +14 -30
  123. data/test/functional/ft_12_launchitem.rb +15 -0
  124. data/test/functional/ft_1_process_status.rb +62 -13
  125. data/test/functional/ft_20_storage_participant.rb +25 -0
  126. data/test/functional/ft_38_participant_more.rb +1 -1
  127. data/test/functional/ft_42_storage_copy.rb +1 -3
  128. data/test/functional/ft_43_participant_on_reply.rb +63 -5
  129. data/test/functional/ft_66_flank.rb +41 -0
  130. data/test/functional/ft_6_on_cancel.rb +9 -18
  131. data/test/functional/ft_71_retries.rb +25 -12
  132. data/test/functional/ft_79_attach.rb +138 -0
  133. data/test/functional/ft_7_tags.rb +27 -0
  134. data/test/functional/ft_80_pause_on_apply.rb +64 -0
  135. data/test/functional/ft_81_mutation.rb +417 -0
  136. data/test/functional/ft_82_await_attribute.rb +84 -0
  137. data/test/functional/ft_83_trackers.rb +79 -0
  138. data/test/functional/storage.rb +3 -4
  139. data/test/unit/ut_12_wait_logger.rb +41 -3
  140. data/test/unit/ut_15_util.rb +30 -0
  141. data/test/unit/ut_17_merge.rb +54 -53
  142. data/test/unit/ut_1_fei.rb +2 -2
  143. data/test/unit/ut_24_radial_reader.rb +7 -0
  144. data/test/unit/ut_26_deep.rb +14 -0
  145. data/test/unit/ut_5_tree.rb +38 -28
  146. metadata +206 -169
  147. data/couch_url.txt +0 -1
  148. data/lib/ruote/exp/merge.rb +0 -134
@@ -58,11 +58,11 @@ class UtFeiTest < Test::Unit::TestCase
58
58
 
59
59
  assert_equal(
60
60
  true,
61
- Ruote::FlowExpressionId.is_a_fei?(
61
+ Ruote.is_a_fei?(
62
62
  'expid' => '0', 'wfid' => '20101224-bababa', 'engine_id' => 'engine'))
63
63
  assert_equal(
64
64
  false,
65
- Ruote::FlowExpressionId.is_a_fei?(
65
+ Ruote.is_a_fei?(
66
66
  'nada' => '0', 'wfid' => '20101224-bababa', 'engine_id' => 'engine'))
67
67
  end
68
68
 
@@ -379,6 +379,13 @@ process_definition name: "nada"
379
379
  tree)
380
380
  end
381
381
 
382
+ def test_string_escaping_directly
383
+
384
+ pa = Ruote::RadialReader::Parser.new
385
+
386
+ assert_equal "brown\\\"fox", pa.string.parse('"brown\"fox"')[:string].to_s
387
+ end
388
+
382
389
  def test_regex
383
390
 
384
391
  tree = Ruote::RadialReader.read(%{
@@ -127,5 +127,19 @@ class DeepTest < Test::Unit::TestCase
127
127
  { 'a' => 2, 'b' => { 'a' => 4 } },
128
128
  h)
129
129
  end
130
+
131
+ def test_deep_mutate_key_mutation
132
+
133
+ h = { 'a' => { 'a' => 'b' } }
134
+
135
+ Ruote.deep_mutate(h, 'a') do |coll, k, v|
136
+ coll.delete('a')
137
+ coll['A'] = v
138
+ end
139
+
140
+ assert_equal(
141
+ { 'A' => { 'A' => 'b' } },
142
+ h)
143
+ end
130
144
  end
131
145
 
@@ -7,48 +7,58 @@
7
7
 
8
8
  require File.expand_path('../../test_helper', __FILE__)
9
9
 
10
- require 'ruote/util/tree'
10
+ require 'ruote'
11
11
 
12
12
 
13
13
  class TreeTest < Test::Unit::TestCase
14
14
 
15
- def test_decompose_tree
15
+ def test_compact_tree_participant
16
16
 
17
17
  assert_equal(
18
- { '0' => [ 'define', { 'name' => 'nada' } ],
19
- '0_0' => [ 'sequence', {} ],
20
- '0_0_0' => [ 'alpha', {} ],
21
- '0_0_1' => [ 'bravo', {} ] },
22
- Ruote.decompose_tree(
23
- [ 'define', { 'name' => 'nada' }, [
24
- [ 'sequence', {}, [ [ 'alpha', {}, [] ], [ 'bravo', {}, [] ] ] ]
25
- ] ]))
18
+ [ 'alpha', {}, [] ],
19
+ Ruote.compact_tree(
20
+ [ 'participant', { 'ref' => 'alpha' }, [] ]))
21
+
22
+ assert_equal(
23
+ [ 'alpha', {}, [] ],
24
+ Ruote.compact_tree(
25
+ [ 'participant', { 'alpha' => nil }, [] ]))
26
+
27
+ assert_equal(
28
+ [ 'alpha', { 'timeout' => '2d' }, [] ],
29
+ Ruote.compact_tree(
30
+ [ 'participant', { 'alpha' => nil, 'timeout' => '2d' }, [] ]))
26
31
  end
27
32
 
28
- def test_decompose_sub_tree
33
+ def test_compact_tree_subprocess
34
+
35
+ assert_equal(
36
+ [ 'do_this', {}, [] ],
37
+ Ruote.compact_tree(
38
+ [ 'subprocess', { 'ref' => 'do_this' }, [] ]))
29
39
 
30
40
  assert_equal(
31
- { '0_1' => [ 'define', { 'name' => 'nada' } ],
32
- '0_1_0' => [ 'sequence', {} ],
33
- '0_1_0_0' => [ 'alpha', {} ],
34
- '0_1_0_1' => [ 'bravo', {} ]},
35
- Ruote.decompose_tree(
36
- [ 'define', { 'name' => 'nada' }, [
37
- [ 'sequence', {}, [ [ 'alpha', {}, [] ], [ 'bravo', {}, [] ] ] ]
38
- ] ], '0_1'))
41
+ [ 'do_this', {}, [] ],
42
+ Ruote.compact_tree(
43
+ [ 'subprocess', { 'do_this' => nil }, [] ]))
39
44
  end
40
45
 
41
- def test_recompose_tree
46
+ def test_compact_tree
42
47
 
43
48
  assert_equal(
44
- [ 'define', { 'name' => 'nada' }, [
45
- [ 'sequence', {}, [ [ 'alpha', {}, [] ], [ 'bravo', {}, [] ] ] ]
46
- ] ],
47
- Ruote.recompose_tree(
48
- { '0' => [ 'define', { 'name' => 'nada' } ],
49
- '0_0' => [ 'sequence', {} ],
50
- '0_0_0' => [ 'alpha', {} ],
51
- '0_0_1' => [ 'bravo', {} ] }))
49
+ ["define", {}, [
50
+ ["concurrence", {}, [
51
+ ["alpha", {"timeout"=>"1d"}, []],
52
+ ["alpha", {}, []]]],
53
+ ["bravo", {}, []]]],
54
+ Ruote.compact_tree(
55
+ Ruote.define do
56
+ concurrence do
57
+ participant :ref => 'alpha', :timeout => '1d'
58
+ subprocess 'alpha'
59
+ end
60
+ bravo
61
+ end))
52
62
  end
53
63
  end
54
64
 
metadata CHANGED
@@ -1,220 +1,242 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ruote
3
- version: !ruby/object:Gem::Version
4
- version: 2.3.0.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 115
5
5
  prerelease:
6
+ segments:
7
+ - 2
8
+ - 3
9
+ - 0
10
+ - 2
11
+ version: 2.3.0.2
6
12
  platform: ruby
7
- authors:
13
+ authors:
8
14
  - John Mettraux
9
15
  - Kenneth Kalmer
10
16
  - Torsten Schoenebaum
11
17
  autorequire:
12
18
  bindir: bin
13
19
  cert_chain: []
14
- date: 2012-09-08 00:00:00.000000000 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: blankslate
18
- requirement: !ruby/object:Gem::Requirement
20
+
21
+ date: 2013-01-10 00:00:00 Z
22
+ dependencies:
23
+ - !ruby/object:Gem::Dependency
24
+ name: ruby_parser
25
+ prerelease: false
26
+ requirement: &id001 !ruby/object:Gem::Requirement
19
27
  none: false
20
- requirements:
21
- - - '='
22
- - !ruby/object:Gem::Version
23
- version: 2.1.2.4
28
+ requirements:
29
+ - - ~>
30
+ - !ruby/object:Gem::Version
31
+ hash: 5
32
+ segments:
33
+ - 2
34
+ - 3
35
+ version: "2.3"
24
36
  type: :runtime
37
+ version_requirements: *id001
38
+ - !ruby/object:Gem::Dependency
39
+ name: blankslate
25
40
  prerelease: false
26
- version_requirements: !ruby/object:Gem::Requirement
41
+ requirement: &id002 !ruby/object:Gem::Requirement
27
42
  none: false
28
- requirements:
29
- - - '='
30
- - !ruby/object:Gem::Version
43
+ requirements:
44
+ - - "="
45
+ - !ruby/object:Gem::Version
46
+ hash: 103
47
+ segments:
48
+ - 2
49
+ - 1
50
+ - 2
51
+ - 4
31
52
  version: 2.1.2.4
32
- - !ruby/object:Gem::Dependency
33
- name: parslet
34
- requirement: !ruby/object:Gem::Requirement
35
- none: false
36
- requirements:
37
- - - ! '>='
38
- - !ruby/object:Gem::Version
39
- version: 1.4.0
40
53
  type: :runtime
54
+ version_requirements: *id002
55
+ - !ruby/object:Gem::Dependency
56
+ name: parslet
41
57
  prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
58
+ requirement: &id003 !ruby/object:Gem::Requirement
43
59
  none: false
44
- requirements:
45
- - - ! '>='
46
- - !ruby/object:Gem::Version
60
+ requirements:
61
+ - - "="
62
+ - !ruby/object:Gem::Version
63
+ hash: 7
64
+ segments:
65
+ - 1
66
+ - 4
67
+ - 0
47
68
  version: 1.4.0
48
- - !ruby/object:Gem::Dependency
49
- name: sourcify
50
- requirement: !ruby/object:Gem::Requirement
51
- none: false
52
- requirements:
53
- - - '='
54
- - !ruby/object:Gem::Version
55
- version: 0.5.0
56
69
  type: :runtime
70
+ version_requirements: *id003
71
+ - !ruby/object:Gem::Dependency
72
+ name: sourcify
57
73
  prerelease: false
58
- version_requirements: !ruby/object:Gem::Requirement
74
+ requirement: &id004 !ruby/object:Gem::Requirement
59
75
  none: false
60
- requirements:
61
- - - '='
62
- - !ruby/object:Gem::Version
76
+ requirements:
77
+ - - "="
78
+ - !ruby/object:Gem::Version
79
+ hash: 11
80
+ segments:
81
+ - 0
82
+ - 5
83
+ - 0
63
84
  version: 0.5.0
64
- - !ruby/object:Gem::Dependency
65
- name: rufus-json
66
- requirement: !ruby/object:Gem::Requirement
67
- none: false
68
- requirements:
69
- - - ! '>='
70
- - !ruby/object:Gem::Version
71
- version: 1.0.1
72
85
  type: :runtime
86
+ version_requirements: *id004
87
+ - !ruby/object:Gem::Dependency
88
+ name: rufus-json
73
89
  prerelease: false
74
- version_requirements: !ruby/object:Gem::Requirement
90
+ requirement: &id005 !ruby/object:Gem::Requirement
75
91
  none: false
76
- requirements:
77
- - - ! '>='
78
- - !ruby/object:Gem::Version
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ hash: 21
96
+ segments:
97
+ - 1
98
+ - 0
99
+ - 1
79
100
  version: 1.0.1
80
- - !ruby/object:Gem::Dependency
81
- name: rufus-cloche
82
- requirement: !ruby/object:Gem::Requirement
83
- none: false
84
- requirements:
85
- - - ! '>='
86
- - !ruby/object:Gem::Version
87
- version: 1.0.2
88
101
  type: :runtime
102
+ version_requirements: *id005
103
+ - !ruby/object:Gem::Dependency
104
+ name: rufus-cloche
89
105
  prerelease: false
90
- version_requirements: !ruby/object:Gem::Requirement
106
+ requirement: &id006 !ruby/object:Gem::Requirement
91
107
  none: false
92
- requirements:
93
- - - ! '>='
94
- - !ruby/object:Gem::Version
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ hash: 19
112
+ segments:
113
+ - 1
114
+ - 0
115
+ - 2
95
116
  version: 1.0.2
96
- - !ruby/object:Gem::Dependency
97
- name: rufus-dollar
98
- requirement: !ruby/object:Gem::Requirement
99
- none: false
100
- requirements:
101
- - - ! '>='
102
- - !ruby/object:Gem::Version
103
- version: 1.0.4
104
117
  type: :runtime
118
+ version_requirements: *id006
119
+ - !ruby/object:Gem::Dependency
120
+ name: rufus-dollar
105
121
  prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
122
+ requirement: &id007 !ruby/object:Gem::Requirement
107
123
  none: false
108
- requirements:
109
- - - ! '>='
110
- - !ruby/object:Gem::Version
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ hash: 31
128
+ segments:
129
+ - 1
130
+ - 0
131
+ - 4
111
132
  version: 1.0.4
112
- - !ruby/object:Gem::Dependency
113
- name: rufus-mnemo
114
- requirement: !ruby/object:Gem::Requirement
115
- none: false
116
- requirements:
117
- - - ! '>='
118
- - !ruby/object:Gem::Version
119
- version: 1.2.2
120
133
  type: :runtime
134
+ version_requirements: *id007
135
+ - !ruby/object:Gem::Dependency
136
+ name: rufus-mnemo
121
137
  prerelease: false
122
- version_requirements: !ruby/object:Gem::Requirement
138
+ requirement: &id008 !ruby/object:Gem::Requirement
123
139
  none: false
124
- requirements:
125
- - - ! '>='
126
- - !ruby/object:Gem::Version
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ hash: 27
144
+ segments:
145
+ - 1
146
+ - 2
147
+ - 2
127
148
  version: 1.2.2
128
- - !ruby/object:Gem::Dependency
129
- name: rufus-scheduler
130
- requirement: !ruby/object:Gem::Requirement
131
- none: false
132
- requirements:
133
- - - ! '>='
134
- - !ruby/object:Gem::Version
135
- version: 2.0.16
136
149
  type: :runtime
150
+ version_requirements: *id008
151
+ - !ruby/object:Gem::Dependency
152
+ name: rufus-scheduler
137
153
  prerelease: false
138
- version_requirements: !ruby/object:Gem::Requirement
154
+ requirement: &id009 !ruby/object:Gem::Requirement
139
155
  none: false
140
- requirements:
141
- - - ! '>='
142
- - !ruby/object:Gem::Version
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ hash: 47
160
+ segments:
161
+ - 2
162
+ - 0
163
+ - 16
143
164
  version: 2.0.16
144
- - !ruby/object:Gem::Dependency
145
- name: rufus-treechecker
146
- requirement: !ruby/object:Gem::Requirement
147
- none: false
148
- requirements:
149
- - - ! '>='
150
- - !ruby/object:Gem::Version
151
- version: 1.0.8
152
165
  type: :runtime
166
+ version_requirements: *id009
167
+ - !ruby/object:Gem::Dependency
168
+ name: rufus-treechecker
153
169
  prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
170
+ requirement: &id010 !ruby/object:Gem::Requirement
155
171
  none: false
156
- requirements:
157
- - - ! '>='
158
- - !ruby/object:Gem::Version
172
+ requirements:
173
+ - - ">="
174
+ - !ruby/object:Gem::Version
175
+ hash: 7
176
+ segments:
177
+ - 1
178
+ - 0
179
+ - 8
159
180
  version: 1.0.8
160
- - !ruby/object:Gem::Dependency
181
+ type: :runtime
182
+ version_requirements: *id010
183
+ - !ruby/object:Gem::Dependency
161
184
  name: rake
162
- requirement: !ruby/object:Gem::Requirement
163
- none: false
164
- requirements:
165
- - - ! '>='
166
- - !ruby/object:Gem::Version
167
- version: '0'
168
- type: :development
169
185
  prerelease: false
170
- version_requirements: !ruby/object:Gem::Requirement
171
- none: false
172
- requirements:
173
- - - ! '>='
174
- - !ruby/object:Gem::Version
175
- version: '0'
176
- - !ruby/object:Gem::Dependency
177
- name: json
178
- requirement: !ruby/object:Gem::Requirement
186
+ requirement: &id011 !ruby/object:Gem::Requirement
179
187
  none: false
180
- requirements:
181
- - - ! '>='
182
- - !ruby/object:Gem::Version
183
- version: '0'
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ hash: 3
192
+ segments:
193
+ - 0
194
+ version: "0"
184
195
  type: :development
196
+ version_requirements: *id011
197
+ - !ruby/object:Gem::Dependency
198
+ name: json
185
199
  prerelease: false
186
- version_requirements: !ruby/object:Gem::Requirement
187
- none: false
188
- requirements:
189
- - - ! '>='
190
- - !ruby/object:Gem::Version
191
- version: '0'
192
- - !ruby/object:Gem::Dependency
193
- name: mailtrap
194
- requirement: !ruby/object:Gem::Requirement
200
+ requirement: &id012 !ruby/object:Gem::Requirement
195
201
  none: false
196
- requirements:
197
- - - ! '>='
198
- - !ruby/object:Gem::Version
199
- version: '0'
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ hash: 3
206
+ segments:
207
+ - 0
208
+ version: "0"
200
209
  type: :development
210
+ version_requirements: *id012
211
+ - !ruby/object:Gem::Dependency
212
+ name: mailtrap
201
213
  prerelease: false
202
- version_requirements: !ruby/object:Gem::Requirement
214
+ requirement: &id013 !ruby/object:Gem::Requirement
203
215
  none: false
204
- requirements:
205
- - - ! '>='
206
- - !ruby/object:Gem::Version
207
- version: '0'
208
- description: ! "\nruote is an open source Ruby workflow engine\n "
209
- email:
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ hash: 3
220
+ segments:
221
+ - 0
222
+ version: "0"
223
+ type: :development
224
+ version_requirements: *id013
225
+ description: "\n\
226
+ ruote is an open source Ruby workflow engine\n "
227
+ email:
210
228
  - jmettraux@gmail.com
211
229
  executables: []
230
+
212
231
  extensions: []
232
+
213
233
  extra_rdoc_files: []
214
- files:
234
+
235
+ files:
215
236
  - Rakefile
216
237
  - lib/ruote/context.rb
217
238
  - lib/ruote/dashboard.rb
239
+ - lib/ruote/dboard/mutation.rb
218
240
  - lib/ruote/dboard/process_error.rb
219
241
  - lib/ruote/dboard/process_status.rb
220
242
  - lib/ruote/engine.rb
@@ -263,13 +285,13 @@ files:
263
285
  - lib/ruote/exp/fe_wait.rb
264
286
  - lib/ruote/exp/flow_expression.rb
265
287
  - lib/ruote/exp/iterator.rb
266
- - lib/ruote/exp/merge.rb
267
288
  - lib/ruote/exp/ro_attributes.rb
268
289
  - lib/ruote/exp/ro_filters.rb
269
290
  - lib/ruote/exp/ro_on_x.rb
270
291
  - lib/ruote/exp/ro_persist.rb
271
292
  - lib/ruote/exp/ro_timers.rb
272
293
  - lib/ruote/exp/ro_variables.rb
294
+ - lib/ruote/extract.rb
273
295
  - lib/ruote/fei.rb
274
296
  - lib/ruote/fs.rb
275
297
  - lib/ruote/id/mnemo_wfid_generator.rb
@@ -278,6 +300,7 @@ files:
278
300
  - lib/ruote/log/fancy_printing.rb
279
301
  - lib/ruote/log/storage_history.rb
280
302
  - lib/ruote/log/wait_logger.rb
303
+ - lib/ruote/merge.rb
281
304
  - lib/ruote/observer.rb
282
305
  - lib/ruote/part/block_participant.rb
283
306
  - lib/ruote/part/code_participant.rb
@@ -456,7 +479,12 @@ files:
456
479
  - test/functional/ft_76_observer.rb
457
480
  - test/functional/ft_77_process_observer.rb
458
481
  - test/functional/ft_78_part_participant.rb
482
+ - test/functional/ft_79_attach.rb
459
483
  - test/functional/ft_7_tags.rb
484
+ - test/functional/ft_80_pause_on_apply.rb
485
+ - test/functional/ft_81_mutation.rb
486
+ - test/functional/ft_82_await_attribute.rb
487
+ - test/functional/ft_83_trackers.rb
460
488
  - test/functional/ft_8_participant_consumption.rb
461
489
  - test/functional/ft_9_subprocesses.rb
462
490
  - test/functional/restart_base.rb
@@ -505,33 +533,42 @@ files:
505
533
  - test/unit/ut_9_xml_reader.rb
506
534
  - ruote.gemspec
507
535
  - CHANGELOG.txt
508
- - couch_url.txt
509
536
  - CREDITS.txt
510
537
  - LICENSE.txt
511
538
  - TODO.txt
512
539
  - README.rdoc
513
540
  homepage: http://ruote.rubyforge.org
514
541
  licenses: []
542
+
515
543
  post_install_message:
516
544
  rdoc_options: []
517
- require_paths:
545
+
546
+ require_paths:
518
547
  - lib
519
- required_ruby_version: !ruby/object:Gem::Requirement
548
+ required_ruby_version: !ruby/object:Gem::Requirement
520
549
  none: false
521
- requirements:
522
- - - ! '>='
523
- - !ruby/object:Gem::Version
524
- version: '0'
525
- required_rubygems_version: !ruby/object:Gem::Requirement
550
+ requirements:
551
+ - - ">="
552
+ - !ruby/object:Gem::Version
553
+ hash: 3
554
+ segments:
555
+ - 0
556
+ version: "0"
557
+ required_rubygems_version: !ruby/object:Gem::Requirement
526
558
  none: false
527
- requirements:
528
- - - ! '>='
529
- - !ruby/object:Gem::Version
530
- version: '0'
559
+ requirements:
560
+ - - ">="
561
+ - !ruby/object:Gem::Version
562
+ hash: 3
563
+ segments:
564
+ - 0
565
+ version: "0"
531
566
  requirements: []
567
+
532
568
  rubyforge_project: ruote
533
- rubygems_version: 1.8.24
569
+ rubygems_version: 1.8.15
534
570
  signing_key:
535
571
  specification_version: 3
536
572
  summary: an open source Ruby workflow engine
537
573
  test_files: []
574
+