dynflow 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. data/.gitignore +6 -0
  2. data/.travis.yml +9 -0
  3. data/Gemfile +0 -10
  4. data/MIT-LICENSE +1 -1
  5. data/README.md +99 -37
  6. data/Rakefile +2 -6
  7. data/doc/images/logo.png +0 -0
  8. data/dynflow.gemspec +10 -1
  9. data/examples/generate_work_for_daemon.rb +24 -0
  10. data/examples/orchestrate.rb +121 -0
  11. data/examples/run_daemon.rb +17 -0
  12. data/examples/web_console.rb +29 -0
  13. data/lib/dynflow.rb +27 -6
  14. data/lib/dynflow/action.rb +185 -77
  15. data/lib/dynflow/action/cancellable_polling.rb +18 -0
  16. data/lib/dynflow/action/finalize_phase.rb +18 -0
  17. data/lib/dynflow/action/flow_phase.rb +44 -0
  18. data/lib/dynflow/action/format.rb +46 -0
  19. data/lib/dynflow/action/missing.rb +26 -0
  20. data/lib/dynflow/action/plan_phase.rb +85 -0
  21. data/lib/dynflow/action/polling.rb +49 -0
  22. data/lib/dynflow/action/presenter.rb +51 -0
  23. data/lib/dynflow/action/progress.rb +62 -0
  24. data/lib/dynflow/action/run_phase.rb +43 -0
  25. data/lib/dynflow/action/suspended.rb +21 -0
  26. data/lib/dynflow/clock.rb +133 -0
  27. data/lib/dynflow/daemon.rb +29 -0
  28. data/lib/dynflow/execution_plan.rb +285 -33
  29. data/lib/dynflow/execution_plan/dependency_graph.rb +29 -0
  30. data/lib/dynflow/execution_plan/output_reference.rb +52 -0
  31. data/lib/dynflow/execution_plan/steps.rb +12 -0
  32. data/lib/dynflow/execution_plan/steps/abstract.rb +121 -0
  33. data/lib/dynflow/execution_plan/steps/abstract_flow_step.rb +52 -0
  34. data/lib/dynflow/execution_plan/steps/error.rb +33 -0
  35. data/lib/dynflow/execution_plan/steps/finalize_step.rb +23 -0
  36. data/lib/dynflow/execution_plan/steps/plan_step.rb +81 -0
  37. data/lib/dynflow/execution_plan/steps/run_step.rb +21 -0
  38. data/lib/dynflow/executors.rb +9 -0
  39. data/lib/dynflow/executors/abstract.rb +32 -0
  40. data/lib/dynflow/executors/parallel.rb +88 -0
  41. data/lib/dynflow/executors/parallel/core.rb +119 -0
  42. data/lib/dynflow/executors/parallel/execution_plan_manager.rb +120 -0
  43. data/lib/dynflow/executors/parallel/flow_manager.rb +48 -0
  44. data/lib/dynflow/executors/parallel/pool.rb +102 -0
  45. data/lib/dynflow/executors/parallel/running_steps_manager.rb +63 -0
  46. data/lib/dynflow/executors/parallel/sequence_cursor.rb +97 -0
  47. data/lib/dynflow/executors/parallel/sequential_manager.rb +81 -0
  48. data/lib/dynflow/executors/parallel/work_queue.rb +44 -0
  49. data/lib/dynflow/executors/parallel/worker.rb +30 -0
  50. data/lib/dynflow/executors/remote_via_socket.rb +38 -0
  51. data/lib/dynflow/executors/remote_via_socket/core.rb +150 -0
  52. data/lib/dynflow/flows.rb +13 -0
  53. data/lib/dynflow/flows/abstract.rb +36 -0
  54. data/lib/dynflow/flows/abstract_composed.rb +104 -0
  55. data/lib/dynflow/flows/atom.rb +36 -0
  56. data/lib/dynflow/flows/concurrence.rb +28 -0
  57. data/lib/dynflow/flows/sequence.rb +13 -0
  58. data/lib/dynflow/future.rb +173 -0
  59. data/lib/dynflow/listeners.rb +7 -0
  60. data/lib/dynflow/listeners/abstract.rb +13 -0
  61. data/lib/dynflow/listeners/serialization.rb +41 -0
  62. data/lib/dynflow/listeners/socket.rb +88 -0
  63. data/lib/dynflow/logger_adapters.rb +8 -0
  64. data/lib/dynflow/logger_adapters/abstract.rb +30 -0
  65. data/lib/dynflow/logger_adapters/delegator.rb +13 -0
  66. data/lib/dynflow/logger_adapters/formatters.rb +8 -0
  67. data/lib/dynflow/logger_adapters/formatters/abstract.rb +33 -0
  68. data/lib/dynflow/logger_adapters/formatters/exception.rb +15 -0
  69. data/lib/dynflow/logger_adapters/simple.rb +59 -0
  70. data/lib/dynflow/micro_actor.rb +102 -0
  71. data/lib/dynflow/persistence.rb +53 -0
  72. data/lib/dynflow/persistence_adapters.rb +6 -0
  73. data/lib/dynflow/persistence_adapters/abstract.rb +56 -0
  74. data/lib/dynflow/persistence_adapters/sequel.rb +160 -0
  75. data/lib/dynflow/persistence_adapters/sequel_migrations/001_initial.rb +52 -0
  76. data/lib/dynflow/serializable.rb +66 -0
  77. data/lib/dynflow/simple_world.rb +18 -0
  78. data/lib/dynflow/stateful.rb +40 -0
  79. data/lib/dynflow/testing.rb +32 -0
  80. data/lib/dynflow/testing/assertions.rb +64 -0
  81. data/lib/dynflow/testing/dummy_execution_plan.rb +40 -0
  82. data/lib/dynflow/testing/dummy_executor.rb +29 -0
  83. data/lib/dynflow/testing/dummy_planned_action.rb +18 -0
  84. data/lib/dynflow/testing/dummy_step.rb +19 -0
  85. data/lib/dynflow/testing/dummy_world.rb +33 -0
  86. data/lib/dynflow/testing/factories.rb +83 -0
  87. data/lib/dynflow/testing/managed_clock.rb +23 -0
  88. data/lib/dynflow/testing/mimic.rb +38 -0
  89. data/lib/dynflow/transaction_adapters.rb +9 -0
  90. data/lib/dynflow/transaction_adapters/abstract.rb +26 -0
  91. data/lib/dynflow/transaction_adapters/active_record.rb +27 -0
  92. data/lib/dynflow/transaction_adapters/none.rb +12 -0
  93. data/lib/dynflow/version.rb +1 -1
  94. data/lib/dynflow/web_console.rb +277 -0
  95. data/lib/dynflow/world.rb +168 -0
  96. data/test/action_test.rb +89 -11
  97. data/test/clock_test.rb +59 -0
  98. data/test/code_workflow_example.rb +382 -0
  99. data/test/execution_plan_test.rb +195 -64
  100. data/test/executor_test.rb +692 -0
  101. data/test/persistance_adapters_test.rb +173 -0
  102. data/test/test_helper.rb +316 -1
  103. data/test/testing_test.rb +148 -0
  104. data/test/web_console_test.rb +38 -0
  105. data/web/assets/javascripts/application.js +25 -0
  106. data/web/assets/stylesheets/application.css +101 -0
  107. data/web/assets/vendor/bootstrap/css/bootstrap-responsive.css +1109 -0
  108. data/web/assets/vendor/bootstrap/css/bootstrap-responsive.min.css +9 -0
  109. data/web/assets/vendor/bootstrap/css/bootstrap.css +6167 -0
  110. data/web/assets/vendor/bootstrap/css/bootstrap.min.css +9 -0
  111. data/web/assets/vendor/bootstrap/img/glyphicons-halflings-white.png +0 -0
  112. data/web/assets/vendor/bootstrap/img/glyphicons-halflings.png +0 -0
  113. data/web/assets/vendor/bootstrap/js/bootstrap.js +2280 -0
  114. data/web/assets/vendor/bootstrap/js/bootstrap.min.js +6 -0
  115. data/web/assets/vendor/google-code-prettify/lang-basic.js +3 -0
  116. data/web/assets/vendor/google-code-prettify/prettify.css +1 -0
  117. data/web/assets/vendor/google-code-prettify/prettify.js +30 -0
  118. data/web/assets/vendor/google-code-prettify/run_prettify.js +34 -0
  119. data/web/assets/vendor/jquery/jquery.js +9807 -0
  120. data/web/views/flow.erb +19 -0
  121. data/web/views/flow_step.erb +31 -0
  122. data/web/views/index.erb +39 -0
  123. data/web/views/layout.erb +20 -0
  124. data/web/views/plan_step.erb +11 -0
  125. data/web/views/show.erb +54 -0
  126. metadata +250 -11
  127. data/examples/events.rb +0 -71
  128. data/examples/workflow.rb +0 -140
  129. data/lib/dynflow/bus.rb +0 -168
  130. data/lib/dynflow/dispatcher.rb +0 -36
  131. data/lib/dynflow/logger.rb +0 -34
  132. data/lib/dynflow/step.rb +0 -234
  133. data/test/bus_test.rb +0 -150
@@ -0,0 +1,19 @@
1
+ <table class="flow <%= h(flow_css_classes(flow)) %>">
2
+ <% if flow.is_a? Dynflow::Flows::Atom %>
3
+ <tr>
4
+ <td class="<%= h(flow_css_classes(flow)) %>">
5
+ <%= erb :flow_step, locals: { flow: flow, step: step(flow.step_id) } %>
6
+ </td>
7
+ </tr>
8
+ <% else %>
9
+ <% flow.sub_flows.each do |sub_flow| %>
10
+ <tr>
11
+ <td class="flow <%= h(flow_css_classes(flow, sub_flow)) %>">
12
+ <%= erb :flow, locals: { flow: sub_flow } %>
13
+ </td>
14
+ </tr>
15
+ <% end %>
16
+ <% end %>
17
+ </table>
18
+
19
+
@@ -0,0 +1,31 @@
1
+ <% action = load_action(step) %>
2
+
3
+ <% if flow.is_a? Dynflow::Flows::Atom %>
4
+ <div class="<%= h(atom_css_classes(flow)) %>" style=" width: <%= progress_width(action) %>%;"></div>
5
+ <% end %>
6
+
7
+ <span class="step-label">
8
+ <%= h(step.id) %>: <%= h(step.action_class.name) %> (<%= h(step.state) %>)
9
+ </span>
10
+ <% if @plan.state == :paused && step.state == :error %>
11
+ <a href="<%= url("/#{@plan.id}/skip/#{step.id}") %>" class="postlink">Skip</a>
12
+ <% end %>
13
+ <div class="action">
14
+ <%= show_action_data("Input:", action.input) %>
15
+ <%= show_action_data("Output:", action.output) %>
16
+ <% if step.error %>
17
+ <p>
18
+ Error:
19
+ </p>
20
+ <p>
21
+ <%= h(step.error.exception_class) %>
22
+ </p>
23
+ <p>
24
+ <%= h(step.error.message) %>
25
+ </p>
26
+ <p>
27
+ <%= prettyprint(step.error.backtrace) %>
28
+ </p>
29
+ <% end %>
30
+ </div>
31
+
@@ -0,0 +1,39 @@
1
+ <h1>Listing execution plans</h1>
2
+
3
+ <form action="<%= url %>" method="GET">
4
+ <%= filter_checkbox(:state, Dynflow::ExecutionPlan.states.map(&:to_s)) if supported_filter?(:state) %>
5
+ <input type="submit" value="Filter"/>
6
+ </form>
7
+
8
+ <table class="table">
9
+ <thead>
10
+ <tr>
11
+ <th><%= order_link(:id, "Id") %></th>
12
+ <th><%= order_link(:action, "Action") %></th>
13
+ <th><%= order_link(:state, "State") %></th>
14
+ <th><%= order_link(:result, "Result") %></th>
15
+ <th><%= order_link(:started_at, "Started at") %></th>
16
+ <th></th>
17
+ </tr>
18
+ </thead>
19
+
20
+ <% @plans.each do |plan| %>
21
+ <tr>
22
+ <td><%= h(plan.id) %></td>
23
+ <td><%= h(plan.root_plan_step.action_class.name) %></td>
24
+ <th><%= h(plan.state) %></th>
25
+ <th><%= h(plan.result) %></th>
26
+ <th><%= h(plan.started_at) %></th>
27
+ <td><a href="<%= h(url("/#{plan.id}")) %>">Show</a></td>
28
+ </tr>
29
+
30
+ <% end %>
31
+ </table>
32
+ <% if paginate? %>
33
+ <div class="pagination">
34
+ <ul>
35
+ <li><a href="<%= paginated_url(-1) %>">Prev</a></li>
36
+ <li><a href="<%= paginated_url(+1) %>">Next</a></li>
37
+ </ul>
38
+ </div>
39
+ <% end %>
@@ -0,0 +1,20 @@
1
+ <html>
2
+ <head>
3
+ <title>Dynflow Console</title>
4
+
5
+ <script src="<%= url '/vendor/jquery/jquery.js' %>"></script>
6
+
7
+ <link rel="stylesheet" type="text/css" href="<%= url '/vendor/bootstrap/css/bootstrap.css' %>">
8
+ <link rel="stylesheet" type="text/css" href="<%= url '/stylesheets/application.css' %>">
9
+ <script src="<%= url '/vendor/bootstrap/js/bootstrap.js' %>"></script>
10
+
11
+ <script src="<%= url '/vendor/google-code-prettify/run_prettify.js' %>"></script>
12
+
13
+ <script src="<%= url '/javascripts/application.js' %>"></script>
14
+
15
+ </head>
16
+
17
+ <body>
18
+ <%= yield %>
19
+ </body>
20
+ </html>
@@ -0,0 +1,11 @@
1
+ <ul class="plan-step">
2
+ <li>
3
+ <p>
4
+ <span class="label label-<%= step_css_class(step) %>"><%= h("#{step.action_class}") %></span>
5
+ </p>
6
+ <%= step_error(step) %>
7
+ <% step.children.each do |sub_step_id| %>
8
+ <%= erb :plan_step, locals: { step: @plan.steps[sub_step_id] } %>
9
+ <% end %>
10
+ </li>
11
+ </ul>
@@ -0,0 +1,54 @@
1
+ <p id="notice"><%= h(@notice) %></p>
2
+
3
+
4
+ <p>
5
+ <b>Status:</b>
6
+ <%= h(@plan.state) %>
7
+ <% if @plan.state == :paused %>
8
+ <a href="<%= url("/#{@plan.id}/resume") %>" class="postlink">Resume</a>
9
+ <% end %>
10
+ </p>
11
+
12
+ <p>
13
+ <b>Result:</b>
14
+ <%= h(@plan.result) %>
15
+ </p>
16
+
17
+ <ul class="phases nav nav-tabs" id="myTab">
18
+ <li><a href="#plan">Plan</a></li>
19
+ <li class="active"><a href="#run">Run</a></li>
20
+ <li><a href="#finalize">Finalize</a></li>
21
+ </ul>
22
+
23
+ <div class="tab-content">
24
+ <div class="tab-pane" id="plan">
25
+ <%= erb :plan_step, locals: { step: @plan.root_plan_step } %>
26
+ </div>
27
+ <div class="tab-pane active" id="run">
28
+
29
+ <table class="flow-hint">
30
+ <tr>
31
+ <td class="border sequence"> </td>
32
+ <td>sequence</td>
33
+ <td class="border concurrence"> </td>
34
+ <td>concurrence</td>
35
+ </tr>
36
+ </table>
37
+
38
+ <%= erb :flow, locals: { flow: @plan.run_flow } %>
39
+ </div>
40
+ <div class="tab-pane" id="finalize">
41
+ <%= erb :flow, locals: { flow: @plan.finalize_flow } %>
42
+ </div>
43
+ </div>
44
+
45
+ <script>
46
+ $(function () {
47
+ $('.phases a').click(function (e) {
48
+ e.preventDefault();
49
+ $(this).tab('show');
50
+ });
51
+ })
52
+ </script>
53
+
54
+ <a href="<%= url '/' %>">Back</a>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-07 00:00:00.000000000 Z
12
+ date: 2014-01-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -59,6 +59,54 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: algebrick
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 0.4.0
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.4.0
78
+ - !ruby/object:Gem::Dependency
79
+ name: uuidtools
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rack-test
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
62
110
  - !ruby/object:Gem::Dependency
63
111
  name: minitest
64
112
  requirement: !ruby/object:Gem::Requirement
@@ -75,6 +123,86 @@ dependencies:
75
123
  - - ! '>='
76
124
  - !ruby/object:Gem::Version
77
125
  version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: minitest-reporters
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: activerecord
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: sequel
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: sqlite3
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ - !ruby/object:Gem::Dependency
191
+ name: sinatra
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
78
206
  description: Generate and executed workflows dynamically based on input data and leave
79
207
  it open for others to jump into it as well
80
208
  email:
@@ -84,25 +212,130 @@ extensions: []
84
212
  extra_rdoc_files: []
85
213
  files:
86
214
  - .gitignore
215
+ - .travis.yml
87
216
  - Gemfile
88
217
  - MIT-LICENSE
89
218
  - README.md
90
219
  - Rakefile
220
+ - doc/images/logo.png
91
221
  - dynflow.gemspec
92
- - examples/events.rb
93
- - examples/workflow.rb
222
+ - examples/generate_work_for_daemon.rb
223
+ - examples/orchestrate.rb
224
+ - examples/run_daemon.rb
225
+ - examples/web_console.rb
94
226
  - lib/dynflow.rb
95
227
  - lib/dynflow/action.rb
96
- - lib/dynflow/bus.rb
97
- - lib/dynflow/dispatcher.rb
228
+ - lib/dynflow/action/cancellable_polling.rb
229
+ - lib/dynflow/action/finalize_phase.rb
230
+ - lib/dynflow/action/flow_phase.rb
231
+ - lib/dynflow/action/format.rb
232
+ - lib/dynflow/action/missing.rb
233
+ - lib/dynflow/action/plan_phase.rb
234
+ - lib/dynflow/action/polling.rb
235
+ - lib/dynflow/action/presenter.rb
236
+ - lib/dynflow/action/progress.rb
237
+ - lib/dynflow/action/run_phase.rb
238
+ - lib/dynflow/action/suspended.rb
239
+ - lib/dynflow/clock.rb
240
+ - lib/dynflow/daemon.rb
98
241
  - lib/dynflow/execution_plan.rb
99
- - lib/dynflow/logger.rb
100
- - lib/dynflow/step.rb
242
+ - lib/dynflow/execution_plan/dependency_graph.rb
243
+ - lib/dynflow/execution_plan/output_reference.rb
244
+ - lib/dynflow/execution_plan/steps.rb
245
+ - lib/dynflow/execution_plan/steps/abstract.rb
246
+ - lib/dynflow/execution_plan/steps/abstract_flow_step.rb
247
+ - lib/dynflow/execution_plan/steps/error.rb
248
+ - lib/dynflow/execution_plan/steps/finalize_step.rb
249
+ - lib/dynflow/execution_plan/steps/plan_step.rb
250
+ - lib/dynflow/execution_plan/steps/run_step.rb
251
+ - lib/dynflow/executors.rb
252
+ - lib/dynflow/executors/abstract.rb
253
+ - lib/dynflow/executors/parallel.rb
254
+ - lib/dynflow/executors/parallel/core.rb
255
+ - lib/dynflow/executors/parallel/execution_plan_manager.rb
256
+ - lib/dynflow/executors/parallel/flow_manager.rb
257
+ - lib/dynflow/executors/parallel/pool.rb
258
+ - lib/dynflow/executors/parallel/running_steps_manager.rb
259
+ - lib/dynflow/executors/parallel/sequence_cursor.rb
260
+ - lib/dynflow/executors/parallel/sequential_manager.rb
261
+ - lib/dynflow/executors/parallel/work_queue.rb
262
+ - lib/dynflow/executors/parallel/worker.rb
263
+ - lib/dynflow/executors/remote_via_socket.rb
264
+ - lib/dynflow/executors/remote_via_socket/core.rb
265
+ - lib/dynflow/flows.rb
266
+ - lib/dynflow/flows/abstract.rb
267
+ - lib/dynflow/flows/abstract_composed.rb
268
+ - lib/dynflow/flows/atom.rb
269
+ - lib/dynflow/flows/concurrence.rb
270
+ - lib/dynflow/flows/sequence.rb
271
+ - lib/dynflow/future.rb
272
+ - lib/dynflow/listeners.rb
273
+ - lib/dynflow/listeners/abstract.rb
274
+ - lib/dynflow/listeners/serialization.rb
275
+ - lib/dynflow/listeners/socket.rb
276
+ - lib/dynflow/logger_adapters.rb
277
+ - lib/dynflow/logger_adapters/abstract.rb
278
+ - lib/dynflow/logger_adapters/delegator.rb
279
+ - lib/dynflow/logger_adapters/formatters.rb
280
+ - lib/dynflow/logger_adapters/formatters/abstract.rb
281
+ - lib/dynflow/logger_adapters/formatters/exception.rb
282
+ - lib/dynflow/logger_adapters/simple.rb
283
+ - lib/dynflow/micro_actor.rb
284
+ - lib/dynflow/persistence.rb
285
+ - lib/dynflow/persistence_adapters.rb
286
+ - lib/dynflow/persistence_adapters/abstract.rb
287
+ - lib/dynflow/persistence_adapters/sequel.rb
288
+ - lib/dynflow/persistence_adapters/sequel_migrations/001_initial.rb
289
+ - lib/dynflow/serializable.rb
290
+ - lib/dynflow/simple_world.rb
291
+ - lib/dynflow/stateful.rb
292
+ - lib/dynflow/testing.rb
293
+ - lib/dynflow/testing/assertions.rb
294
+ - lib/dynflow/testing/dummy_execution_plan.rb
295
+ - lib/dynflow/testing/dummy_executor.rb
296
+ - lib/dynflow/testing/dummy_planned_action.rb
297
+ - lib/dynflow/testing/dummy_step.rb
298
+ - lib/dynflow/testing/dummy_world.rb
299
+ - lib/dynflow/testing/factories.rb
300
+ - lib/dynflow/testing/managed_clock.rb
301
+ - lib/dynflow/testing/mimic.rb
302
+ - lib/dynflow/transaction_adapters.rb
303
+ - lib/dynflow/transaction_adapters/abstract.rb
304
+ - lib/dynflow/transaction_adapters/active_record.rb
305
+ - lib/dynflow/transaction_adapters/none.rb
101
306
  - lib/dynflow/version.rb
307
+ - lib/dynflow/web_console.rb
308
+ - lib/dynflow/world.rb
102
309
  - test/action_test.rb
103
- - test/bus_test.rb
310
+ - test/clock_test.rb
311
+ - test/code_workflow_example.rb
104
312
  - test/execution_plan_test.rb
313
+ - test/executor_test.rb
314
+ - test/persistance_adapters_test.rb
105
315
  - test/test_helper.rb
316
+ - test/testing_test.rb
317
+ - test/web_console_test.rb
318
+ - web/assets/javascripts/application.js
319
+ - web/assets/stylesheets/application.css
320
+ - web/assets/vendor/bootstrap/css/bootstrap-responsive.css
321
+ - web/assets/vendor/bootstrap/css/bootstrap-responsive.min.css
322
+ - web/assets/vendor/bootstrap/css/bootstrap.css
323
+ - web/assets/vendor/bootstrap/css/bootstrap.min.css
324
+ - web/assets/vendor/bootstrap/img/glyphicons-halflings-white.png
325
+ - web/assets/vendor/bootstrap/img/glyphicons-halflings.png
326
+ - web/assets/vendor/bootstrap/js/bootstrap.js
327
+ - web/assets/vendor/bootstrap/js/bootstrap.min.js
328
+ - web/assets/vendor/google-code-prettify/lang-basic.js
329
+ - web/assets/vendor/google-code-prettify/prettify.css
330
+ - web/assets/vendor/google-code-prettify/prettify.js
331
+ - web/assets/vendor/google-code-prettify/run_prettify.js
332
+ - web/assets/vendor/jquery/jquery.js
333
+ - web/views/flow.erb
334
+ - web/views/flow_step.erb
335
+ - web/views/index.erb
336
+ - web/views/layout.erb
337
+ - web/views/plan_step.erb
338
+ - web/views/show.erb
106
339
  homepage: http://github.com/iNecas/dynflow
107
340
  licenses: []
108
341
  post_install_message:
@@ -123,12 +356,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
356
  version: '0'
124
357
  requirements: []
125
358
  rubyforge_project:
126
- rubygems_version: 1.8.25
359
+ rubygems_version: 1.8.23
127
360
  signing_key:
128
361
  specification_version: 3
129
362
  summary: DYNamic workFLOW engine
130
363
  test_files:
131
364
  - test/action_test.rb
132
- - test/bus_test.rb
365
+ - test/clock_test.rb
366
+ - test/code_workflow_example.rb
133
367
  - test/execution_plan_test.rb
368
+ - test/executor_test.rb
369
+ - test/persistance_adapters_test.rb
134
370
  - test/test_helper.rb
371
+ - test/testing_test.rb
372
+ - test/web_console_test.rb
373
+ has_rdoc: