workflow_core 0.0.2 → 0.0.3
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.
- checksums.yaml +4 -4
- data/README.md +12 -8
- data/app/models/workflow_core/transition.rb +10 -4
- data/app/models/workflow_core/workflow.rb +1 -1
- data/app/models/workflow_core/workflow_instance.rb +2 -1
- data/db/migrate/20180910195950_create_workflows.rb +1 -1
- data/db/migrate/{20180910200454_create_workflow_transitions.rb → 20180910200203_create_workflow_transitions.rb} +1 -1
- data/db/migrate/{20180910200203_create_workflow_places.rb → 20180910200454_create_workflow_places.rb} +1 -1
- data/db/migrate/20180912223642_create_workflow_instances.rb +1 -1
- data/db/migrate/20180912223722_create_workflow_tokens.rb +1 -1
- data/db/migrate/20191004190723_add_start_place_id_to_workflows.rb +9 -0
- data/lib/workflow_core/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e80a40cece14fd323e6be9a6975da25ef1127fcd013aa62e2a4d036fb1b30390
|
4
|
+
data.tar.gz: ae753290c74c1ebaee65b7f411fef0c6834e0a5fd54f432f66b4de7d4318dd0d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 894663aa689f0b3e80a81928cfdc95ea4be21776f4d79f1fdd6460c0c7cf9c30a8a96b1c297eedfd3fdbb0f7746ceb1b9ee3f4369f4d9b67b77e83ed0f4f39d2
|
7
|
+
data.tar.gz: 2f6e25bfbc730c78467a0e1b635bc7c26143f67617324a3acbd05b2d7068cafe9e1ebf6e7b6abfd9442ffae0a4e2a3b0fdf5d22b5efe71113d81d3af34a7da5f
|
data/README.md
CHANGED
@@ -15,13 +15,11 @@ WorkflowCore is originally designed for Business Process Management (BPM), in th
|
|
15
15
|
- Task may tight with application features
|
16
16
|
- May meet some special or weird requirements
|
17
17
|
|
18
|
-
WorkflowCore is based on [
|
18
|
+
WorkflowCore is based on [Petri Net](http://mlwiki.org/index.php/Petri_Nets) technique, and only providing essential features for a workflow engine.
|
19
19
|
|
20
20
|
## Features
|
21
21
|
|
22
|
-
### Models to describe
|
23
|
-
|
24
|
-
Workflow Net is a special case of [Petri net](http://mlwiki.org/index.php/Petri_Nets)
|
22
|
+
### Models to describe Petri Net
|
25
23
|
|
26
24
|

|
27
25
|
|
@@ -30,7 +28,7 @@ There are two kinds of nodes
|
|
30
28
|
- Place (circles): represent the states of a system
|
31
29
|
- Transition (squares): represent state changes
|
32
30
|
|
33
|
-
WorkflowCore provides Place & Transition models that can represent a
|
31
|
+
WorkflowCore provides Place & Transition models that can represent a Petri Net, and a Workflow model as root.
|
34
32
|
|
35
33
|
### Models to describe workflow instances
|
36
34
|
|
@@ -66,8 +64,8 @@ BTW, the dummy app is a full-featured app with production level codebase that yo
|
|
66
64
|
|
67
65
|
## Requirements
|
68
66
|
|
69
|
-
- MRI 2.
|
70
|
-
- Rails
|
67
|
+
- MRI 2.5+
|
68
|
+
- Rails 6.0+
|
71
69
|
|
72
70
|
## Usage
|
73
71
|
|
@@ -144,7 +142,13 @@ Preparing database
|
|
144
142
|
|
145
143
|
```sh
|
146
144
|
$ bin/rails db:migrate
|
147
|
-
```
|
145
|
+
```
|
146
|
+
|
147
|
+
Import sample workflow
|
148
|
+
|
149
|
+
```sh
|
150
|
+
$ bin/rails db:seed
|
151
|
+
```
|
148
152
|
|
149
153
|
Start the Rails server
|
150
154
|
|
@@ -8,9 +8,15 @@ module WorkflowCore
|
|
8
8
|
|
9
9
|
belongs_to :workflow
|
10
10
|
|
11
|
-
has_many :input_places,
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
has_many :input_places,
|
12
|
+
dependent: :nullify,
|
13
|
+
foreign_key: "output_transition_id",
|
14
|
+
class_name: "WorkflowCore::Place",
|
15
|
+
inverse_of: :output_transition
|
16
|
+
has_many :output_places,
|
17
|
+
dependent: :destroy,
|
18
|
+
foreign_key: "input_transition_id",
|
19
|
+
class_name: "WorkflowCore::Place",
|
20
|
+
inverse_of: :input_transition
|
15
21
|
end
|
16
22
|
end
|
@@ -6,7 +6,7 @@ module WorkflowCore
|
|
6
6
|
|
7
7
|
self.table_name = "workflows"
|
8
8
|
|
9
|
-
|
9
|
+
belongs_to :start_place, class_name: "WorkflowCore::Place", dependent: :destroy, optional: true
|
10
10
|
|
11
11
|
has_many :transitions, class_name: "WorkflowCore::Transition", dependent: :destroy
|
12
12
|
has_many :places, class_name: "WorkflowCore::Place", dependent: :destroy
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
class CreateWorkflowPlaces < ActiveRecord::Migration[
|
3
|
+
class CreateWorkflowPlaces < ActiveRecord::Migration[6.0]
|
4
4
|
def change
|
5
5
|
create_table :workflow_places do |t|
|
6
6
|
t.references :input_transition, foreign_key: { to_table: "workflow_transitions" }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workflow_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jasl
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -49,10 +49,11 @@ files:
|
|
49
49
|
- app/models/workflow_core/workflow.rb
|
50
50
|
- app/models/workflow_core/workflow_instance.rb
|
51
51
|
- db/migrate/20180910195950_create_workflows.rb
|
52
|
-
- db/migrate/
|
53
|
-
- db/migrate/
|
52
|
+
- db/migrate/20180910200203_create_workflow_transitions.rb
|
53
|
+
- db/migrate/20180910200454_create_workflow_places.rb
|
54
54
|
- db/migrate/20180912223642_create_workflow_instances.rb
|
55
55
|
- db/migrate/20180912223722_create_workflow_tokens.rb
|
56
|
+
- db/migrate/20191004190723_add_start_place_id_to_workflows.rb
|
56
57
|
- lib/tasks/workflow_core_tasks.rake
|
57
58
|
- lib/workflow_core.rb
|
58
59
|
- lib/workflow_core/concerns/models/place.rb
|
@@ -81,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
82
|
- !ruby/object:Gem::Version
|
82
83
|
version: '0'
|
83
84
|
requirements: []
|
84
|
-
rubygems_version: 3.
|
85
|
+
rubygems_version: 3.1.2
|
85
86
|
signing_key:
|
86
87
|
specification_version: 4
|
87
88
|
summary: A Rails engine which providing essential infrastructure of workflow. It's
|