libis-workflow-mongoid 2.0.4 → 2.0.5
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/lib/libis/workflow/mongoid/base.rb +4 -4
- data/lib/libis/workflow/mongoid/config.rb +0 -1
- data/lib/libis/workflow/mongoid/dynamic.rb +15 -9
- data/lib/libis/workflow/mongoid/log_entry.rb +0 -1
- data/lib/libis/workflow/mongoid/run.rb +1 -9
- data/lib/libis/workflow/mongoid/version.rb +1 -3
- data/lib/libis/workflow/mongoid/work_item.rb +73 -2
- data/lib/libis/workflow/mongoid/worker.rb +0 -2
- data/lib/libis/workflow/mongoid.rb +0 -3
- data/lib/libis-workflow-mongoid.rb +0 -1
- metadata +1 -2
- data/lib/libis/workflow/mongoid/work_item_base.rb +0 -94
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 017f82dc01ac32a1e83b84d9fc5df11ffaf0615c
|
4
|
+
data.tar.gz: d92861630b1adebd7230af71e6d51b0285107308
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82f885ebe58ec52be066d8aefd8859612569e5ba6556d905852c80062fe0c9b51265563763b845caa2a4bded2924c9ce708c5dca71bcfcd94b60b0ef3478e107
|
7
|
+
data.tar.gz: 97bf3b6bc08f98149cbe887e855c2fcc9d776aa1b951fc85910cdaabff6b2dc2294368735a540e761069f23d4bfd2663813f8a1a4f96afa53aab2c857acf9483
|
@@ -1,14 +1,11 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
require 'mongoid'
|
3
2
|
require 'mongoid/document'
|
4
3
|
require 'yaml'
|
5
4
|
require 'libis/tools/extend/hash'
|
6
5
|
require 'map_with_indifferent_access'
|
7
6
|
|
8
|
-
# require 'mongoid_indifferent_access'
|
9
7
|
require_relative 'sequence'
|
10
8
|
|
11
|
-
|
12
9
|
module Libis
|
13
10
|
module Workflow
|
14
11
|
module Mongoid
|
@@ -17,14 +14,17 @@ module Libis
|
|
17
14
|
|
18
15
|
def self.included(klass)
|
19
16
|
klass.extend(ClassMethods)
|
17
|
+
|
20
18
|
klass.class_eval do
|
19
|
+
|
21
20
|
include ::Mongoid::Document
|
22
21
|
include ::Mongoid::Timestamps::Created::Short
|
23
|
-
# include ::Mongoid::Extensions::Hash::IndifferentAccess
|
24
22
|
include ::Libis::Workflow::Mongoid::Sequence
|
23
|
+
|
25
24
|
field :_id, type: Integer, overwrite: true
|
26
25
|
sequence :_id
|
27
26
|
index c_at: 1
|
27
|
+
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -6,27 +6,33 @@ module Libis
|
|
6
6
|
module Workflow
|
7
7
|
module Mongoid
|
8
8
|
module Dynamic
|
9
|
+
|
10
|
+
module ClassMethods
|
11
|
+
def has_key?(key)
|
12
|
+
self.attributes.has_key?(key.to_s) || self.attributes.has_key?(key.to_sym)
|
13
|
+
end
|
14
|
+
|
15
|
+
def each(&block)
|
16
|
+
self.attributes.reject { |k,_| k == '_id' }.each(&block)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
9
20
|
def self.included(klass)
|
21
|
+
klass.extend(ClassMethods)
|
22
|
+
|
10
23
|
klass.class_eval do
|
24
|
+
|
11
25
|
include ::Mongoid::Document
|
12
26
|
include ::Mongoid::Attributes::Dynamic
|
13
27
|
include ::Libis::Workflow::Mongoid::Sequence
|
28
|
+
|
14
29
|
field :_id, type: Integer, overwrite: true
|
15
30
|
sequence :_id
|
16
31
|
index _id: 1
|
17
32
|
|
18
|
-
def has_key?(key)
|
19
|
-
self.attributes.has_key?(key.to_s) || self.attributes.has_key?(key.to_sym)
|
20
|
-
end
|
21
|
-
|
22
|
-
def each(&block)
|
23
|
-
self.attributes.reject { |k,_| k == '_id' }.each(&block)
|
24
|
-
end
|
25
|
-
|
26
33
|
end
|
27
34
|
end
|
28
35
|
|
29
|
-
|
30
36
|
end
|
31
37
|
end
|
32
38
|
end
|
@@ -1,20 +1,14 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
require 'fileutils'
|
3
2
|
|
4
3
|
require 'libis/workflow/base/run'
|
5
|
-
require 'libis/workflow/mongoid/work_item_base'
|
6
4
|
|
7
5
|
module Libis
|
8
6
|
module Workflow
|
9
7
|
module Mongoid
|
10
8
|
|
11
|
-
class Run
|
9
|
+
class Run < Libis::Workflow::Mongoid::WorkItem
|
12
10
|
|
13
11
|
include ::Libis::Workflow::Base::Run
|
14
|
-
include ::Libis::Workflow::Mongoid::WorkItemBase
|
15
|
-
# extend ActiveSupport::Concern
|
16
|
-
|
17
|
-
store_in collection: 'workflow_runs'
|
18
12
|
|
19
13
|
field :start_date, type: Time, default: -> { Time.now }
|
20
14
|
field :log_to_file, type: Boolean, default: false
|
@@ -36,8 +30,6 @@ module Libis
|
|
36
30
|
|
37
31
|
def run(action = :run)
|
38
32
|
self.tasks = []
|
39
|
-
self.items = []
|
40
|
-
# noinspection RubySuperCallWithoutSuperclassInspection
|
41
33
|
super action
|
42
34
|
end
|
43
35
|
|
@@ -1,9 +1,7 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
module Libis
|
4
2
|
module Workflow
|
5
3
|
module Mongoid
|
6
|
-
VERSION = '2.0.
|
4
|
+
VERSION = '2.0.5' unless const_defined? :VERSION # the guard is against a redefinition warning that happens on Travis
|
7
5
|
end
|
8
6
|
end
|
9
7
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
require 'libis-workflow'
|
3
2
|
|
4
3
|
module Libis
|
@@ -8,7 +7,79 @@ module Libis
|
|
8
7
|
class WorkItem
|
9
8
|
|
10
9
|
include Libis::Workflow::Base::WorkItem
|
11
|
-
include Libis::Workflow::Mongoid::
|
10
|
+
include Libis::Workflow::Mongoid::Base
|
11
|
+
|
12
|
+
store_in collection: 'workflow_items'
|
13
|
+
|
14
|
+
field :_options, type: Hash, default: -> { Hash.new }
|
15
|
+
field :_properties, type: Hash, default: -> { Hash.new }
|
16
|
+
field :_summary, type: Hash, default: -> { Hash.new }
|
17
|
+
|
18
|
+
has_many :logs, as: :logger, class_name: Libis::Workflow::Mongoid::LogEntry.to_s,
|
19
|
+
dependent: :destroy, autosave: true, order: :_id.asc do
|
20
|
+
def log_history
|
21
|
+
where(:status.exists => false)
|
22
|
+
end
|
23
|
+
|
24
|
+
def status_log
|
25
|
+
where(:status.exists => true)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
has_many :items, as: :parent, class_name: Libis::Workflow::Mongoid::WorkItem.to_s,
|
30
|
+
dependent: :destroy, autosave: true, order: :c_at.asc
|
31
|
+
|
32
|
+
belongs_to :parent, polymorphic: true
|
33
|
+
|
34
|
+
set_callback(:destroy, :before) do |document|
|
35
|
+
# noinspection RubyResolve
|
36
|
+
document.logs.each { |log| log.destroy! }
|
37
|
+
end
|
38
|
+
|
39
|
+
indifferent_hash :_options, :options
|
40
|
+
indifferent_hash :_properties, :properties
|
41
|
+
indifferent_hash :_summary, :summary
|
42
|
+
|
43
|
+
def to_hash
|
44
|
+
result = super
|
45
|
+
result[:options] = result.delete(:_options)
|
46
|
+
result[:properties] = result.delete(:_properties)
|
47
|
+
result[:summary] = result.delete(:_summary)
|
48
|
+
result
|
49
|
+
end
|
50
|
+
|
51
|
+
def log_history
|
52
|
+
# noinspection RubyResolve
|
53
|
+
self.logs.log_history.all || []
|
54
|
+
end
|
55
|
+
|
56
|
+
def status_log
|
57
|
+
# noinspection RubyResolve
|
58
|
+
self.logs.status_log.all || []
|
59
|
+
end
|
60
|
+
|
61
|
+
def add_item(item)
|
62
|
+
if item.parent
|
63
|
+
item.parent = nil
|
64
|
+
end
|
65
|
+
super
|
66
|
+
end
|
67
|
+
|
68
|
+
def get_items
|
69
|
+
self.items.to_a
|
70
|
+
end
|
71
|
+
|
72
|
+
protected
|
73
|
+
|
74
|
+
def add_log_entry(msg)
|
75
|
+
# noinspection RubyResolve
|
76
|
+
self.logs.build(msg)
|
77
|
+
end
|
78
|
+
|
79
|
+
def add_status_log(info)
|
80
|
+
# noinspection RubyResolve
|
81
|
+
self.logs.build(info)
|
82
|
+
end
|
12
83
|
|
13
84
|
end
|
14
85
|
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require 'libis-workflow'
|
4
2
|
|
5
3
|
require_relative 'mongoid/version'
|
@@ -12,7 +10,6 @@ module Libis
|
|
12
10
|
autoload :Config, 'libis/workflow/mongoid/config'
|
13
11
|
autoload :LogEntry, 'libis/workflow/mongoid/log_entry'
|
14
12
|
autoload :Job, 'libis/workflow/mongoid/job'
|
15
|
-
autoload :WorkItemBase, 'libis/workflow/mongoid/work_item_base'
|
16
13
|
autoload :WorkItem, 'libis/workflow/mongoid/work_item'
|
17
14
|
autoload :Run, 'libis/workflow/mongoid/run'
|
18
15
|
autoload :Worker, 'libis/workflow/mongoid/worker'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libis-workflow-mongoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kris Dekeyser
|
@@ -120,7 +120,6 @@ files:
|
|
120
120
|
- lib/libis/workflow/mongoid/sequence.rb
|
121
121
|
- lib/libis/workflow/mongoid/version.rb
|
122
122
|
- lib/libis/workflow/mongoid/work_item.rb
|
123
|
-
- lib/libis/workflow/mongoid/work_item_base.rb
|
124
123
|
- lib/libis/workflow/mongoid/worker.rb
|
125
124
|
- lib/libis/workflow/mongoid/workflow.rb
|
126
125
|
- lib/map_with_indifferent_access.rb
|
@@ -1,94 +0,0 @@
|
|
1
|
-
require 'map_with_indifferent_access'
|
2
|
-
require 'libis-workflow'
|
3
|
-
|
4
|
-
module Libis
|
5
|
-
module Workflow
|
6
|
-
module Mongoid
|
7
|
-
|
8
|
-
module WorkItemBase
|
9
|
-
|
10
|
-
def self.included(klass)
|
11
|
-
klass.class_eval do
|
12
|
-
include Libis::Workflow::Base::WorkItem
|
13
|
-
include Libis::Workflow::Mongoid::Base
|
14
|
-
|
15
|
-
store_in collection: 'workflow_items'
|
16
|
-
|
17
|
-
field :_options, type: Hash, default: -> { Hash.new }
|
18
|
-
field :_properties, type: Hash, default: -> { Hash.new }
|
19
|
-
field :_summary, type: Hash, default: -> { Hash.new }
|
20
|
-
|
21
|
-
has_many :logs, as: :logger, class_name: Libis::Workflow::Mongoid::LogEntry.to_s,
|
22
|
-
dependent: :destroy, autosave: true, order: :_id.asc do
|
23
|
-
def log_history
|
24
|
-
where(:status.exists => false)
|
25
|
-
end
|
26
|
-
|
27
|
-
def status_log
|
28
|
-
where(:status.exists => true)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
has_many :items, as: :parent, class_name: Libis::Workflow::Mongoid::WorkItem.to_s,
|
33
|
-
dependent: :destroy, autosave: true, order: :c_at.asc
|
34
|
-
|
35
|
-
belongs_to :parent, polymorphic: true
|
36
|
-
|
37
|
-
set_callback(:destroy, :before) do |document|
|
38
|
-
# noinspection RubyResolve
|
39
|
-
document.logs.each { |log| log.destroy! }
|
40
|
-
end
|
41
|
-
|
42
|
-
indifferent_hash :_options, :options
|
43
|
-
indifferent_hash :_properties, :properties
|
44
|
-
indifferent_hash :_summary, :summary
|
45
|
-
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def to_hash
|
50
|
-
result = super
|
51
|
-
result[:options] = result.delete(:_options)
|
52
|
-
result[:properties] = result.delete(:_properties)
|
53
|
-
result[:summary] = result.delete(:_summary)
|
54
|
-
result
|
55
|
-
end
|
56
|
-
|
57
|
-
def log_history
|
58
|
-
# noinspection RubyResolve
|
59
|
-
self.logs.log_history.all || []
|
60
|
-
end
|
61
|
-
|
62
|
-
def status_log
|
63
|
-
# noinspection RubyResolve
|
64
|
-
self.logs.status_log.all || []
|
65
|
-
end
|
66
|
-
|
67
|
-
def add_item(item)
|
68
|
-
if item.parent
|
69
|
-
item.parent = nil
|
70
|
-
end
|
71
|
-
super
|
72
|
-
end
|
73
|
-
|
74
|
-
def get_items
|
75
|
-
self.items.to_a
|
76
|
-
end
|
77
|
-
|
78
|
-
protected
|
79
|
-
|
80
|
-
def add_log_entry(msg)
|
81
|
-
# noinspection RubyResolve
|
82
|
-
self.logs.build(msg)
|
83
|
-
end
|
84
|
-
|
85
|
-
def add_status_log(info)
|
86
|
-
# noinspection RubyResolve
|
87
|
-
self.logs.build(info)
|
88
|
-
end
|
89
|
-
|
90
|
-
end
|
91
|
-
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|