ooze-parser 0.1.11 → 0.1.12
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/.gitignore +22 -0
- data/.rubocop.yml +102 -0
- data/.ruby-version +1 -0
- data/.yardopts +10 -0
- data/README.md +23 -0
- data/lib/ooz/base/evolution.rb +2 -1
- data/lib/ooz/base/field/actions_list.rb +10 -0
- data/lib/ooz/base/field/checklist.rb +3 -2
- data/lib/ooz/base/field/contractor_entities.rb +15 -0
- data/lib/ooz/base/field/cross_reference.rb +3 -2
- data/lib/ooz/base/field/date.rb +4 -3
- data/lib/ooz/base/field/file.rb +3 -2
- data/lib/ooz/base/field/gauge.rb +3 -2
- data/lib/ooz/base/field/geo.rb +10 -0
- data/lib/ooz/base/field/image_gallery.rb +3 -2
- data/lib/ooz/base/field/mailbox.rb +10 -0
- data/lib/ooz/base/field/people.rb +5 -3
- data/lib/ooz/base/field/select.rb +18 -13
- data/lib/ooz/base/field.rb +30 -13
- data/lib/ooz/base/field_factory.rb +9 -3
- data/lib/ooz/base/force.rb +3 -3
- data/lib/ooz/base/genome.rb +14 -0
- data/lib/ooz/base/model.rb +16 -9
- data/lib/ooz/base/model_factory.rb +13 -9
- data/lib/ooz/base/ooze.rb +21 -9
- data/lib/ooz/base/stage/task/action_factory.rb +5 -2
- data/lib/ooz/base/stage/task/scheduled_callback.rb +2 -1
- data/lib/ooz/base/stage/task/strategy/direct.rb +1 -1
- data/lib/ooz/base/stage/task/strategy/editable.rb +1 -1
- data/lib/ooz/base/stage/task/strategy/prior.rb +1 -1
- data/lib/ooz/base/stage/task/strategy/prior_supervisor.rb +1 -1
- data/lib/ooz/base/stage/task/strategy.rb +9 -9
- data/lib/ooz/base/stage/task/strategy_factory.rb +8 -2
- data/lib/ooz/base/stage/task.rb +12 -11
- data/lib/ooz/base/stage.rb +4 -2
- data/lib/ooz/base.rb +1 -0
- data/lib/ooz/common/base_class.rb +15 -9
- data/lib/ooz/common/base_factory.rb +0 -3
- data/lib/ooz/common/base_model.rb +13 -8
- data/lib/ooz/common/hash_diff.rb +6 -4
- data/lib/ooz/model/evolution.rb +1 -2
- data/lib/ooz/model/field/actions_list.rb +15 -0
- data/lib/ooz/model/field/checklist/item.rb +5 -0
- data/lib/ooz/model/field/checklist.rb +7 -1
- data/lib/ooz/model/field/contractor_entities.rb +14 -0
- data/lib/ooz/model/field/cross_reference.rb +5 -0
- data/lib/ooz/model/field/date.rb +5 -0
- data/lib/ooz/model/field/file.rb +7 -1
- data/lib/ooz/model/field/gauge.rb +6 -0
- data/lib/ooz/model/field/geo.rb +15 -0
- data/lib/ooz/model/field/image_gallery.rb +7 -1
- data/lib/ooz/model/field/mailbox.rb +14 -0
- data/lib/ooz/model/field/number.rb +5 -0
- data/lib/ooz/model/field/people.rb +5 -0
- data/lib/ooz/model/field/plain_text.rb +5 -0
- data/lib/ooz/model/field/rich_text.rb +5 -0
- data/lib/ooz/model/field/select/option.rb +5 -0
- data/lib/ooz/model/field/select.rb +7 -1
- data/lib/ooz/model/field.rb +24 -14
- data/lib/ooz/model/field_factory.rb +1 -1
- data/lib/ooz/model/ooze.rb +48 -17
- data/lib/ooz/model/section.rb +1 -3
- data/lib/ooz/model/stage.rb +10 -2
- data/lib/ooz/version.rb +1 -1
- data/lib/ooze-parser.rb +1 -0
- data/ooze-parser.gemspec +18 -17
- metadata +18 -4
data/lib/ooz/base/ooze.rb
CHANGED
@@ -8,23 +8,35 @@ module Ooz
|
|
8
8
|
|
9
9
|
passthrough :_id, :template_id, :name, :organization_id, :patch_ver, to: :doc
|
10
10
|
passthrough :created_at, :updated_at, :time_zone, to: :doc
|
11
|
+
passthrough :creator_id, :creator_name, to: :doc
|
11
12
|
passthrough :state, :status, to: :doc
|
12
13
|
passthrough :votes_enabled, :upvotes, :downvotes, to: :doc
|
13
|
-
|
14
|
+
|
14
15
|
passthrough :theme_id, :icon, :ss_error, to: :doc
|
15
16
|
passthrough :disable_direct_permissions, :task_priority, to: :doc
|
16
17
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
passthrough :tags, :compiled_tags, :base_tags, to: :doc
|
19
|
+
passthrough :auto_selected_locations, to: :doc
|
20
|
+
passthrough :location_ids, :other_tags, to: :doc
|
21
|
+
passthrough :location_propagation_store, to: :doc
|
21
22
|
|
22
|
-
|
23
|
-
super(*args)
|
23
|
+
passthrough :forces_timed_out, to: :doc
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
passthrough :permits, :contractor_permits, to: :doc
|
26
|
+
passthrough :geo_coordinates, to: :doc
|
27
|
+
passthrough :mould_counter, to: :doc
|
28
|
+
passthrough :_schedules, to: :doc
|
29
|
+
passthrough :update_histories, to: :doc
|
30
|
+
passthrough :cloned_ids_mapping, to: :doc
|
31
|
+
|
32
|
+
embedding_one :evolution, to: :doc, klass: :evolution_class
|
33
|
+
embedding_many :flow_nodes, to: :doc, klass: :section_class
|
34
|
+
embedding_many :membranes, to: :doc, klass: :field_factory_class
|
35
|
+
embedding_many :forces, to: :doc, klass: :force_class
|
27
36
|
|
37
|
+
def initialize(*args)
|
38
|
+
super
|
39
|
+
end
|
28
40
|
end
|
29
41
|
end
|
30
42
|
end
|
@@ -3,8 +3,11 @@ module Ooz
|
|
3
3
|
class Stage
|
4
4
|
class Task
|
5
5
|
class ActionFactory < ModelFactory
|
6
|
-
|
7
|
-
|
6
|
+
parent_class_is Base::Stage::Task::Action
|
7
|
+
|
8
|
+
WHITE_CLASS = %w[Reminder Escalate Tag].freeze
|
9
|
+
|
10
|
+
white_classes_are(*WHITE_CLASS)
|
8
11
|
end
|
9
12
|
end
|
10
13
|
end
|
@@ -4,9 +4,10 @@ module Ooz
|
|
4
4
|
class Task
|
5
5
|
class ScheduledCallback < Base::Model
|
6
6
|
overridable_const :action_factory_class, Base::Stage::Task::ActionFactory
|
7
|
+
|
7
8
|
passthrough :_id, :patch_ver, to: :doc
|
8
9
|
passthrough :due_ctr, :due_unit, :recurs, :recurs_unit, :recurs_ctr, to: :doc
|
9
|
-
|
10
|
+
embedding_many :actions, to: :doc, klass: action_factory_class
|
10
11
|
end
|
11
12
|
end
|
12
13
|
end
|
@@ -4,18 +4,18 @@ module Ooz
|
|
4
4
|
class Task
|
5
5
|
class Strategy < Base::Model
|
6
6
|
overridable_const :priority_class, Base::Stage::Task::Priority
|
7
|
-
|
8
|
-
|
7
|
+
|
8
|
+
passthrough :_id, :_type, :order, :patch_ver, to: :doc
|
9
|
+
embedding_one :priorities, to: :doc, klass: priority_class
|
9
10
|
end
|
10
11
|
end
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
15
|
-
|
16
|
-
require_relative
|
17
|
-
require_relative
|
18
|
-
require_relative
|
19
|
-
require_relative
|
20
|
-
require_relative
|
21
|
-
require_relative "strategy/direct"
|
16
|
+
require_relative 'strategy/scheduler'
|
17
|
+
require_relative 'strategy/prior'
|
18
|
+
require_relative 'strategy/prior_supervisor'
|
19
|
+
require_relative 'strategy/supervisor'
|
20
|
+
require_relative 'strategy/editable'
|
21
|
+
require_relative 'strategy/direct'
|
@@ -3,8 +3,14 @@ module Ooz
|
|
3
3
|
class Stage
|
4
4
|
class Task
|
5
5
|
class StrategyFactory < ModelFactory
|
6
|
-
|
7
|
-
|
6
|
+
parent_class_is Base::Stage::Task::Strategy
|
7
|
+
|
8
|
+
WHITE_CLASS = %w[
|
9
|
+
Scheduler Prior PriorSupervisor Supervisor
|
10
|
+
Editable Direct
|
11
|
+
].freeze
|
12
|
+
|
13
|
+
white_classes_are(*WHITE_CLASS)
|
8
14
|
end
|
9
15
|
end
|
10
16
|
end
|
data/lib/ooz/base/stage/task.rb
CHANGED
@@ -7,14 +7,14 @@ module Ooz
|
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
-
require_relative
|
11
|
-
require_relative
|
12
|
-
require_relative
|
13
|
-
require_relative
|
14
|
-
require_relative
|
15
|
-
require_relative
|
16
|
-
require_relative
|
17
|
-
require_relative
|
10
|
+
require_relative 'task/priority'
|
11
|
+
require_relative 'task/strategy'
|
12
|
+
require_relative 'task/strategy_factory'
|
13
|
+
require_relative 'task/action'
|
14
|
+
require_relative 'task/action_factory'
|
15
|
+
require_relative 'task/scheduled_callback'
|
16
|
+
require_relative 'task/completion'
|
17
|
+
require_relative 'task/review'
|
18
18
|
|
19
19
|
module Ooz
|
20
20
|
module Base
|
@@ -22,11 +22,12 @@ module Ooz
|
|
22
22
|
class Task
|
23
23
|
overridable_const :strategy_class, Base::Stage::Task::StrategyFactory
|
24
24
|
overridable_const :scheduled_callback_class, Base::Stage::Task::ScheduledCallback
|
25
|
+
|
25
26
|
passthrough :_id, :_type, :patch_ver, to: :doc
|
26
27
|
passthrough :due_enabled, :due_ctr, :due_unit, to: :doc
|
27
|
-
|
28
|
-
|
29
|
-
|
28
|
+
embedding_many :strategies, to: :doc, klass: :strategy_class
|
29
|
+
embedding_one :default_strategy, to: :doc, klass: :strategy_class
|
30
|
+
embedding_many :scheduled_callbacks, to: :doc, klass: :scheduled_callback_class
|
30
31
|
end
|
31
32
|
end
|
32
33
|
end
|
data/lib/ooz/base/stage.rb
CHANGED
@@ -21,8 +21,10 @@ module Ooz
|
|
21
21
|
passthrough :disable_direct_permissions, :lock_after_completion, to: :doc
|
22
22
|
passthrough :task_priority, to: :doc
|
23
23
|
|
24
|
-
|
25
|
-
|
24
|
+
passthrough :permits, :contractor_permits, to: :doc
|
25
|
+
|
26
|
+
embedding_one :completion_task_config, to: :doc, klass: :task_completion_class
|
27
|
+
embedding_one :review_task_config, to: :doc, klass: :task_review_class
|
26
28
|
end
|
27
29
|
end
|
28
30
|
end
|
data/lib/ooz/base.rb
CHANGED
@@ -2,12 +2,13 @@ module Ooz
|
|
2
2
|
module Common
|
3
3
|
class BaseClass
|
4
4
|
class << self
|
5
|
-
|
6
|
-
def overridable_const (method, value)
|
5
|
+
def overridable_const(method, value)
|
7
6
|
method = method.to_s
|
7
|
+
|
8
8
|
define_singleton_method method do
|
9
9
|
value
|
10
10
|
end
|
11
|
+
|
11
12
|
define_method method do
|
12
13
|
self.class.send(method)
|
13
14
|
end
|
@@ -16,48 +17,53 @@ module Ooz
|
|
16
17
|
def passthrough(*methods, to:)
|
17
18
|
methods.each do |method|
|
18
19
|
method = method.to_s
|
20
|
+
|
19
21
|
define_method method do
|
20
22
|
send(to)[method]
|
21
23
|
end
|
24
|
+
|
22
25
|
define_method "#{method}=" do |value|
|
23
26
|
send(to)[method] = value
|
24
27
|
end
|
25
28
|
end
|
26
29
|
end
|
27
30
|
|
28
|
-
def
|
31
|
+
def embedding_one(method, to:, klass:)
|
29
32
|
method = method.to_s
|
30
|
-
var
|
33
|
+
var = "@#{method}"
|
31
34
|
|
32
35
|
define_method method do
|
33
36
|
return instance_variable_get(var) if instance_variable_defined?(var)
|
37
|
+
|
34
38
|
send(to)[method] = send(to)[method] || {}
|
35
39
|
|
36
|
-
klass = klass.is_a?(Class)
|
37
|
-
obj
|
40
|
+
klass = send(klass) unless klass.is_a?(Class)
|
41
|
+
obj = klass.new(send(to)[method], root: self)
|
42
|
+
|
38
43
|
instance_variable_set(var, obj)
|
39
44
|
obj
|
40
45
|
end
|
41
46
|
end
|
42
47
|
|
43
|
-
def
|
48
|
+
def embedding_many(method, to:, klass:)
|
44
49
|
method = method.to_s
|
45
50
|
var = "@#{method}"
|
46
51
|
|
47
52
|
define_method method do
|
48
53
|
return instance_variable_get(var) if instance_variable_defined?(var)
|
54
|
+
|
49
55
|
send(to)[method] = send(to)[method] || []
|
50
56
|
|
51
|
-
klass = klass.is_a?(Class)
|
57
|
+
klass = send(klass) unless klass.is_a?(Class)
|
52
58
|
arr = send(to)[method].map do |e|
|
53
59
|
klass.new(e, root: self)
|
54
60
|
end
|
61
|
+
|
55
62
|
instance_variable_set(var, arr)
|
56
63
|
arr
|
57
64
|
end
|
58
65
|
end
|
59
66
|
end
|
60
|
-
|
61
67
|
end
|
62
68
|
end
|
63
69
|
end
|
@@ -1,19 +1,24 @@
|
|
1
1
|
module Ooz
|
2
2
|
module Common
|
3
3
|
class BaseModel < BaseClass
|
4
|
+
class << self
|
5
|
+
def build(doc = {})
|
6
|
+
new(doc).tap do |instance|
|
7
|
+
instance.instance_variable_set("@original_doc", {})
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
4
12
|
attr_reader :doc
|
13
|
+
|
5
14
|
def initialize(doc = {})
|
15
|
+
super()
|
16
|
+
|
6
17
|
@doc = doc
|
7
18
|
@original_doc = JSON.parse(doc.to_json)
|
8
19
|
@last_change = {}
|
9
20
|
end
|
10
21
|
|
11
|
-
def self.build(doc = {})
|
12
|
-
new(doc).tap do |instance|
|
13
|
-
instance.instance_variable_set("@original_doc", {})
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
22
|
def print
|
18
23
|
puts JSON.pretty_generate(as_json)
|
19
24
|
self
|
@@ -49,11 +54,11 @@ module Ooz
|
|
49
54
|
end
|
50
55
|
|
51
56
|
def update_last_change!
|
52
|
-
last_chg
|
57
|
+
last_chg = @last_change
|
53
58
|
@last_change = as_update
|
59
|
+
|
54
60
|
last_chg
|
55
61
|
end
|
56
|
-
|
57
62
|
end
|
58
63
|
end
|
59
64
|
end
|
data/lib/ooz/common/hash_diff.rb
CHANGED
@@ -1,26 +1,28 @@
|
|
1
1
|
module Ooz
|
2
2
|
module Common
|
3
3
|
module HashDiff
|
4
|
-
ID_KEYS = %w[_id]
|
4
|
+
ID_KEYS = %w[_id].freeze
|
5
5
|
|
6
6
|
def self.diff(a, b)
|
7
7
|
return a if a.class != b.class
|
8
|
+
|
8
9
|
case a
|
9
10
|
when Hash
|
10
11
|
{}.tap do |diffed|
|
11
12
|
a.each do |key, a_value|
|
12
13
|
b_value = b[key]
|
13
14
|
next if a_value == b_value && !ID_KEYS.include?(key)
|
15
|
+
|
14
16
|
diffed[key] = diff(a_value, b_value)
|
15
17
|
diffed.delete(key) if diffed[key] == {}
|
16
18
|
end
|
19
|
+
|
17
20
|
# All keys are IDs, so it's actually blank
|
18
|
-
if (diffed.keys - ID_KEYS).empty?
|
19
|
-
return {}
|
20
|
-
end
|
21
|
+
return {} if (diffed.keys - ID_KEYS).empty?
|
21
22
|
end
|
22
23
|
when Array
|
23
24
|
return a unless a.length == b.length
|
25
|
+
|
24
26
|
a.map.with_index do |a_value, idx|
|
25
27
|
b_value = b[idx]
|
26
28
|
diff(a_value, b_value)
|
data/lib/ooz/model/evolution.rb
CHANGED
@@ -7,14 +7,20 @@ module Ooz
|
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
-
require_relative
|
10
|
+
require_relative 'checklist/item'
|
11
11
|
|
12
12
|
module Ooz
|
13
13
|
module Model
|
14
14
|
class Field
|
15
15
|
class Checklist
|
16
16
|
overridable_const :checklist_item_class, Model::Field::Checklist::Item
|
17
|
+
|
17
18
|
include Methods
|
19
|
+
|
20
|
+
def clear
|
21
|
+
items.each(&:clear)
|
22
|
+
super
|
23
|
+
end
|
18
24
|
end
|
19
25
|
end
|
20
26
|
end
|
data/lib/ooz/model/field/date.rb
CHANGED
data/lib/ooz/model/field/file.rb
CHANGED
@@ -7,14 +7,20 @@ module Ooz
|
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
-
require_relative
|
10
|
+
require_relative 'file/file'
|
11
11
|
|
12
12
|
module Ooz
|
13
13
|
module Model
|
14
14
|
class Field
|
15
15
|
class File
|
16
16
|
overridable_const :file_class, Model::Field::File::File
|
17
|
+
|
17
18
|
include Methods
|
19
|
+
|
20
|
+
def clear
|
21
|
+
doc['items'] = []
|
22
|
+
super
|
23
|
+
end
|
18
24
|
end
|
19
25
|
end
|
20
26
|
end
|
@@ -7,14 +7,20 @@ module Ooz
|
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
-
require_relative
|
10
|
+
require_relative 'image_gallery/image'
|
11
11
|
|
12
12
|
module Ooz
|
13
13
|
module Model
|
14
14
|
class Field
|
15
15
|
class ImageGallery
|
16
16
|
overridable_const :gauge_stop_class, Model::Field::Gauge::Stop
|
17
|
+
|
17
18
|
include Methods
|
19
|
+
|
20
|
+
def clear
|
21
|
+
doc['images'] = []
|
22
|
+
super
|
23
|
+
end
|
18
24
|
end
|
19
25
|
end
|
20
26
|
end
|