ruote 2.3.0.1 → 2.3.0.2

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.
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
+