rails_workflow 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/app/assets/javascripts/{workflow → rails_workflow}/application.js +0 -0
- data/app/assets/stylesheets/{workflow → rails_workflow}/application.css +0 -0
- data/app/concerns/{workflow → rails_workflow}/operation_status.rb +2 -2
- data/app/concerns/{workflow → rails_workflow}/operation_templates/assignments.rb +4 -4
- data/app/concerns/{workflow → rails_workflow}/operation_templates/default_builder.rb +3 -3
- data/app/concerns/{workflow → rails_workflow}/operation_templates/dependencies.rb +1 -2
- data/app/concerns/{workflow → rails_workflow}/operations/assignments.rb +3 -4
- data/app/concerns/{workflow → rails_workflow}/operations/default_runner.rb +8 -8
- data/app/concerns/{workflow → rails_workflow}/operations/dependencies.rb +2 -2
- data/app/concerns/{workflow → rails_workflow}/process_status.rb +2 -2
- data/app/concerns/{workflow → rails_workflow}/process_templates/default_builder.rb +2 -2
- data/app/concerns/{workflow → rails_workflow}/processes/default_runner.rb +2 -3
- data/app/concerns/{workflow → rails_workflow}/processes/dependency_resolver.rb +2 -3
- data/app/concerns/{workflow → rails_workflow}/user/assignment.rb +2 -3
- data/app/controllers/rails_workflow/application_controller.rb +10 -0
- data/app/controllers/{workflow → rails_workflow}/errors_controller.rb +2 -2
- data/app/controllers/{workflow → rails_workflow}/operation_templates_controller.rb +5 -6
- data/app/controllers/{workflow → rails_workflow}/operations_controller.rb +5 -5
- data/app/controllers/{workflow → rails_workflow}/process_templates_controller.rb +4 -5
- data/app/controllers/{workflow → rails_workflow}/processes_controller.rb +10 -11
- data/app/decorators/{workflow → rails_workflow}/context_decorator.rb +1 -1
- data/app/decorators/{workflow → rails_workflow}/decorator.rb +1 -1
- data/app/decorators/{workflow → rails_workflow}/operation_decorator.rb +3 -3
- data/app/decorators/{workflow → rails_workflow}/operation_helper_decorator.rb +1 -2
- data/app/decorators/{workflow → rails_workflow}/operation_template_decorator.rb +1 -2
- data/app/decorators/{workflow → rails_workflow}/paginating_decorator.rb +1 -1
- data/app/decorators/{workflow → rails_workflow}/process_decorator.rb +1 -4
- data/app/decorators/{workflow → rails_workflow}/process_template_decorator.rb +4 -5
- data/app/decorators/{workflow → rails_workflow}/status_decorator.rb +1 -2
- data/app/helpers/{workflow → rails_workflow}/application_helper.rb +1 -1
- data/app/managers/{workflow → rails_workflow}/process_manager.rb +3 -4
- data/app/models/{workflow → rails_workflow}/context.rb +1 -1
- data/app/models/{workflow → rails_workflow}/error.rb +14 -14
- data/app/models/{workflow → rails_workflow}/operation.rb +6 -7
- data/app/models/{workflow → rails_workflow}/operation_template.rb +7 -8
- data/app/models/{workflow → rails_workflow}/process.rb +8 -9
- data/app/models/{workflow → rails_workflow}/process_template.rb +3 -4
- data/app/models/{workflow → rails_workflow}/user_by_group_operation.rb +1 -2
- data/app/models/{workflow → rails_workflow}/user_by_role_operation.rb +1 -2
- data/app/views/layouts/{workflow → rails_workflow}/application.html.slim +3 -3
- data/app/views/{workflow → rails_workflow}/operation_templates/_default_form.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/operation_templates/_user_group_form.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/operation_templates/_user_role_form.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/operation_templates/edit.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/operation_templates/index.html.slim +1 -1
- data/app/views/{workflow → rails_workflow}/operation_templates/new.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/operation_templates/show.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/operations/index.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/operations/show.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/process_templates/_form.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/process_templates/edit.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/process_templates/index.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/process_templates/new.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/process_templates/show.html.slim +1 -1
- data/app/views/{workflow → rails_workflow}/processes/_form.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/processes/edit.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/processes/index.html.slim +6 -6
- data/app/views/{workflow → rails_workflow}/processes/new.html.slim +0 -0
- data/app/views/{workflow → rails_workflow}/processes/show.html.slim +0 -0
- data/app/workers/{workflow → rails_workflow}/error_worker.rb +5 -5
- data/app/workers/{workflow → rails_workflow}/operation_worker.rb +1 -1
- data/config/initializers/{workflow.rb → rails_workflow.rb} +8 -8
- data/config/routes.rb +1 -1
- data/db/migrate/20150210070051_change_namespace.rb +10 -0
- data/lib/generators/{workflow → rails_workflow}/install/install_generator.rb +1 -1
- data/lib/generators/{workflow → rails_workflow}/install/templates/create_workflow_processes.rb +22 -12
- data/lib/{workflow → rails_workflow}/engine.rb +2 -8
- data/lib/rails_workflow/version.rb +3 -0
- data/lib/{workflow.rb → rails_workflow.rb} +9 -9
- data/lib/tasks/{workflow_tasks.rake → rails_workflow_tasks.rake} +0 -0
- data/spec/controllers/{workflow → rails_workflow}/operation_templates_controller_spec.rb +6 -6
- data/spec/controllers/{workflow → rails_workflow}/operations_controller_spec.rb +2 -2
- data/spec/controllers/{workflow → rails_workflow}/process_templates_controller_spec.rb +2 -2
- data/spec/controllers/{workflow → rails_workflow}/processes_controller_spec.rb +2 -2
- data/spec/core/{worklow → rails_workflow}/process_manager_spec.rb +11 -11
- data/spec/dummy/app/controllers/sales_contacts_controller.rb +1 -1
- data/spec/dummy/app/models/bad_operation.rb +1 -1
- data/spec/dummy/app/models/bad_operation_template.rb +1 -1
- data/spec/dummy/app/models/user.rb +1 -1
- data/spec/dummy/config/application.rb +1 -1
- data/spec/dummy/config/initializers/workflow.rb +1 -1
- data/spec/dummy/config/routes.rb +1 -1
- data/spec/dummy/db/schema.rb +34 -34
- data/spec/dummy/log/development.log +1324 -0
- data/spec/dummy/log/test.log +7697 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/0aeea3efe13c49227e4f05894224629b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/17093127c2a964b159dacb6baee0c707 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/844434b6c7324d1785e26864aee28316 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ab0c70eaae03da94a23f832513ff652b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d8f3150c250e5b7c730f1c8b883bf033 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f794c7b05987535f7000622afe6630d1 +0 -0
- data/spec/dummy/tmp/pids/server.pid +1 -0
- data/spec/factories/context.rb +1 -1
- data/spec/factories/operation_templates.rb +1 -1
- data/spec/factories/operations.rb +3 -3
- data/spec/factories/process_templates.rb +1 -1
- data/spec/factories/processes.rb +2 -2
- data/spec/factories/workflow_errors.rb +1 -1
- data/spec/features/process_template_spec.rb +0 -1
- data/spec/models/{workflow → rails_workflow}/context_spec.rb +4 -4
- data/spec/models/{workflow → rails_workflow}/error_spec.rb +1 -1
- data/spec/models/{workflow → rails_workflow}/operation_spec.rb +19 -19
- data/spec/models/{workflow → rails_workflow}/operation_template_spec.rb +5 -5
- data/spec/models/{workflow → rails_workflow}/process_spec.rb +1 -1
- data/spec/models/{workflow → rails_workflow}/process_template_spec.rb +3 -3
- data/spec/rails_helper.rb +2 -2
- data/spec/support/{workflow → rails_workflow}/custom_operation.rb +1 -1
- data/spec/support/{workflow → rails_workflow}/custom_operation_template.rb +1 -1
- metadata +111 -96
- data/app/controllers/workflow/application_controller.rb +0 -10
- data/lib/workflow/version.rb +0 -3
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
43488
|
data/spec/factories/context.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
FactoryGirl.define do
|
2
|
-
factory :operation, :class => '
|
2
|
+
factory :operation, :class => 'RailsWorkflow::Operation' do
|
3
3
|
title "Test Operation"
|
4
|
-
status
|
4
|
+
status RailsWorkflow::Operation::NOT_STARTED
|
5
5
|
|
6
6
|
factory :operation_with_context do
|
7
7
|
context { create :context, data: { msg: "Test" }}
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
factory :custom_operation, class: '
|
11
|
+
factory :custom_operation, class: 'RailsWorkflow::CustomOperation'
|
12
12
|
end
|
data/spec/factories/processes.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
FactoryGirl.define do
|
2
|
-
factory :process, :class =>
|
3
|
-
status
|
2
|
+
factory :process, :class => "RailsWorkflow::Process" do
|
3
|
+
status RailsWorkflow::Process::NOT_STARTED
|
4
4
|
context { create :context, data: {msg: "Test message"} }
|
5
5
|
end
|
6
6
|
|
@@ -1,16 +1,16 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
module
|
3
|
+
module RailsWorkflow
|
4
4
|
RSpec.describe Context, :type => :model do
|
5
5
|
let(:operation) { create :operation }
|
6
6
|
let(:process) { create :process }
|
7
7
|
let(:manager) { ProcessManager.new }
|
8
8
|
let(:template) {
|
9
|
-
create :operation_template, async: true, operation_class: "
|
9
|
+
create :operation_template, async: true, operation_class: "RailsWorkflow::UserByGroupOperation"
|
10
10
|
}
|
11
11
|
|
12
12
|
before :each do
|
13
|
-
allow_any_instance_of(
|
13
|
+
allow_any_instance_of(RailsWorkflow::Process).to receive(:manager).and_return(manager)
|
14
14
|
end
|
15
15
|
|
16
16
|
|
@@ -98,7 +98,7 @@ module Workflow
|
|
98
98
|
|
99
99
|
|
100
100
|
it 'should be build using operation dependencies contexts' do
|
101
|
-
operation = create :operation_with_context, status:
|
101
|
+
operation = create :operation_with_context, status: RailsWorkflow::Operation::ERROR
|
102
102
|
|
103
103
|
child_operation =
|
104
104
|
template.build_operation! process, [operation]
|
@@ -1,19 +1,19 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
module
|
3
|
+
module RailsWorkflow
|
4
4
|
RSpec.describe Operation, :type => :model do
|
5
5
|
context 'Default Builder' do
|
6
6
|
let(:template) {
|
7
|
-
create :operation_template, async: true, operation_class: "
|
7
|
+
create :operation_template, async: true, operation_class: "RailsWorkflow::UserByGroupOperation"
|
8
8
|
}
|
9
9
|
|
10
|
-
let(:manager) { manager =
|
10
|
+
let(:manager) { manager = RailsWorkflow::ProcessManager.new }
|
11
11
|
let(:process) { process = create :process }
|
12
12
|
|
13
13
|
let(:operation) { template.build_operation! process }
|
14
14
|
|
15
15
|
before :each do
|
16
|
-
allow_any_instance_of(
|
16
|
+
allow_any_instance_of(RailsWorkflow::Process).to receive(:manager).and_return(manager)
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'sould fill title and async from template' do
|
@@ -26,7 +26,7 @@ module Workflow
|
|
26
26
|
|
27
27
|
context 'should set dependencies' do
|
28
28
|
it 'from template' do
|
29
|
-
operation = create :operation, status:
|
29
|
+
operation = create :operation, status: RailsWorkflow::Operation::ERROR
|
30
30
|
|
31
31
|
|
32
32
|
operation_with_dependencies =
|
@@ -49,7 +49,7 @@ module Workflow
|
|
49
49
|
end
|
50
50
|
|
51
51
|
it 'should build correct class' do
|
52
|
-
expect(operation).to be_kind_of
|
52
|
+
expect(operation).to be_kind_of RailsWorkflow::UserByGroupOperation
|
53
53
|
end
|
54
54
|
|
55
55
|
it 'should set reference to operation template' do
|
@@ -67,7 +67,7 @@ module Workflow
|
|
67
67
|
end
|
68
68
|
|
69
69
|
it 'should set status NOT STARTED' do
|
70
|
-
expect(operation.status).to eq
|
70
|
+
expect(operation.status).to eq RailsWorkflow::Operation::NOT_STARTED
|
71
71
|
end
|
72
72
|
|
73
73
|
it 'should build child process' do
|
@@ -75,7 +75,7 @@ module Workflow
|
|
75
75
|
|
76
76
|
parent_operation = parent_template.build_operation! process, [operation]
|
77
77
|
|
78
|
-
expect(parent_operation.child_process).to be_a_kind_of
|
78
|
+
expect(parent_operation.child_process).to be_a_kind_of RailsWorkflow::Process
|
79
79
|
end
|
80
80
|
|
81
81
|
it 'should save operation' do
|
@@ -155,14 +155,14 @@ module Workflow
|
|
155
155
|
|
156
156
|
user = create :user, role: :admin
|
157
157
|
|
158
|
-
role_operations =
|
158
|
+
role_operations = RailsWorkflow::Operation.available_for_user(user)
|
159
159
|
expect(role_operations).to match_array([role_operation])
|
160
160
|
|
161
161
|
fake_user = create :user, email: 'fake@email.com', role: 'fake'
|
162
|
-
expect(
|
162
|
+
expect(RailsWorkflow::Operation.available_for_user(fake_user)).to eq []
|
163
163
|
|
164
164
|
role_operation.assign user
|
165
|
-
expect(
|
165
|
+
expect(RailsWorkflow::Operation.unassigned).to match_array [group_operation]
|
166
166
|
end
|
167
167
|
|
168
168
|
end
|
@@ -174,13 +174,13 @@ module Workflow
|
|
174
174
|
it 'should be set to WAITING if can not start' do
|
175
175
|
allow(operation).to receive(:can_start?).and_return(false)
|
176
176
|
operation.start
|
177
|
-
expect(operation.status).to eq
|
177
|
+
expect(operation.status).to eq RailsWorkflow::Operation::WAITING
|
178
178
|
end
|
179
179
|
|
180
180
|
it 'should start child process' do
|
181
181
|
|
182
|
-
allow_any_instance_of(
|
183
|
-
allow_any_instance_of(
|
182
|
+
allow_any_instance_of(RailsWorkflow::Process).to receive(:can_start?).and_return(true)
|
183
|
+
allow_any_instance_of(RailsWorkflow::Process).to receive(:can_complete?).and_return(false)
|
184
184
|
|
185
185
|
parent_operation = create :operation
|
186
186
|
|
@@ -190,9 +190,9 @@ module Workflow
|
|
190
190
|
|
191
191
|
|
192
192
|
|
193
|
-
expect(parent_operation.status).to eq
|
193
|
+
expect(parent_operation.status).to eq RailsWorkflow::Operation::IN_PROGRESS
|
194
194
|
parent_operation.child_process.reload
|
195
|
-
expect(parent_operation.child_process.status).to eq
|
195
|
+
expect(parent_operation.child_process.status).to eq RailsWorkflow::Process::IN_PROGRESS
|
196
196
|
end
|
197
197
|
|
198
198
|
it 'should not complete if child process is in progress'
|
@@ -207,14 +207,14 @@ module Workflow
|
|
207
207
|
|
208
208
|
context 'complete operation ' do
|
209
209
|
before :each do
|
210
|
-
@manager =
|
211
|
-
allow_any_instance_of(
|
210
|
+
@manager = RailsWorkflow::ProcessManager.new
|
211
|
+
allow_any_instance_of(RailsWorkflow::Operation).to receive(:manager).and_return(@manager)
|
212
212
|
end
|
213
213
|
|
214
214
|
it 'should change state to DONE on complete' do
|
215
215
|
expect(@manager).to receive(:operation_complete)
|
216
216
|
subject.complete
|
217
|
-
expect(subject.status).to eq
|
217
|
+
expect(subject.status).to eq RailsWorkflow::Operation::DONE
|
218
218
|
end
|
219
219
|
|
220
220
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
module
|
3
|
+
module RailsWorkflow
|
4
4
|
RSpec.describe OperationTemplate, :type => :model do
|
5
5
|
|
6
6
|
let(:template) { create :process_template }
|
@@ -11,10 +11,10 @@ module Workflow
|
|
11
11
|
{
|
12
12
|
title: 'First Test project',
|
13
13
|
process_template_id: template.id,
|
14
|
-
type:
|
14
|
+
type: "RailsWorkflow::CustomOperationTemplate"
|
15
15
|
}
|
16
16
|
)
|
17
|
-
expect(operation_template).to be_instance_of(
|
17
|
+
expect(operation_template).to be_instance_of(RailsWorkflow::CustomOperationTemplate)
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'should return only independent operations' do
|
@@ -23,12 +23,12 @@ module Workflow
|
|
23
23
|
dependencies = [
|
24
24
|
{
|
25
25
|
"id" => operation.id,
|
26
|
-
"statuses" => [
|
26
|
+
"statuses" => [RailsWorkflow::OperationStatus::DONE]
|
27
27
|
}
|
28
28
|
]
|
29
29
|
|
30
30
|
create :operation_template, process_template: template, dependencies: dependencies
|
31
|
-
expect(
|
31
|
+
expect(RailsWorkflow::OperationTemplate.independent_only.to_a).to match_array([operation])
|
32
32
|
end
|
33
33
|
|
34
34
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
module
|
3
|
+
module RailsWorkflow
|
4
4
|
RSpec.describe ProcessTemplate, :type => :model do
|
5
5
|
let(:template) {
|
6
|
-
create :process_template, process_class: "
|
6
|
+
create :process_template, process_class: "RailsWorkflow::TestProcess"
|
7
7
|
}
|
8
8
|
|
9
9
|
it 'should init new process' do
|
@@ -14,7 +14,7 @@ module Workflow
|
|
14
14
|
|
15
15
|
end
|
16
16
|
|
17
|
-
class TestProcess <
|
17
|
+
class TestProcess < RailsWorkflow::Process
|
18
18
|
end
|
19
19
|
|
20
20
|
end
|
data/spec/rails_helper.rb
CHANGED
@@ -15,8 +15,8 @@ require_relative '../spec/factories/operations.rb'
|
|
15
15
|
require_relative '../spec/factories/processes.rb'
|
16
16
|
require_relative '../spec/factories/user.rb'
|
17
17
|
require_relative '../spec/factories/context.rb'
|
18
|
-
require_relative '../spec/support/
|
19
|
-
require_relative '../spec/support/
|
18
|
+
require_relative '../spec/support/rails_workflow/custom_operation_template.rb'
|
19
|
+
require_relative '../spec/support/rails_workflow/custom_operation.rb'
|
20
20
|
|
21
21
|
|
22
22
|
ActiveRecord::Migration.maintain_test_schema!
|