dynflow 0.1.0 → 0.2.0

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 (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: