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.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +22 -0
  3. data/.rubocop.yml +102 -0
  4. data/.ruby-version +1 -0
  5. data/.yardopts +10 -0
  6. data/README.md +23 -0
  7. data/lib/ooz/base/evolution.rb +2 -1
  8. data/lib/ooz/base/field/actions_list.rb +10 -0
  9. data/lib/ooz/base/field/checklist.rb +3 -2
  10. data/lib/ooz/base/field/contractor_entities.rb +15 -0
  11. data/lib/ooz/base/field/cross_reference.rb +3 -2
  12. data/lib/ooz/base/field/date.rb +4 -3
  13. data/lib/ooz/base/field/file.rb +3 -2
  14. data/lib/ooz/base/field/gauge.rb +3 -2
  15. data/lib/ooz/base/field/geo.rb +10 -0
  16. data/lib/ooz/base/field/image_gallery.rb +3 -2
  17. data/lib/ooz/base/field/mailbox.rb +10 -0
  18. data/lib/ooz/base/field/people.rb +5 -3
  19. data/lib/ooz/base/field/select.rb +18 -13
  20. data/lib/ooz/base/field.rb +30 -13
  21. data/lib/ooz/base/field_factory.rb +9 -3
  22. data/lib/ooz/base/force.rb +3 -3
  23. data/lib/ooz/base/genome.rb +14 -0
  24. data/lib/ooz/base/model.rb +16 -9
  25. data/lib/ooz/base/model_factory.rb +13 -9
  26. data/lib/ooz/base/ooze.rb +21 -9
  27. data/lib/ooz/base/stage/task/action_factory.rb +5 -2
  28. data/lib/ooz/base/stage/task/scheduled_callback.rb +2 -1
  29. data/lib/ooz/base/stage/task/strategy/direct.rb +1 -1
  30. data/lib/ooz/base/stage/task/strategy/editable.rb +1 -1
  31. data/lib/ooz/base/stage/task/strategy/prior.rb +1 -1
  32. data/lib/ooz/base/stage/task/strategy/prior_supervisor.rb +1 -1
  33. data/lib/ooz/base/stage/task/strategy.rb +9 -9
  34. data/lib/ooz/base/stage/task/strategy_factory.rb +8 -2
  35. data/lib/ooz/base/stage/task.rb +12 -11
  36. data/lib/ooz/base/stage.rb +4 -2
  37. data/lib/ooz/base.rb +1 -0
  38. data/lib/ooz/common/base_class.rb +15 -9
  39. data/lib/ooz/common/base_factory.rb +0 -3
  40. data/lib/ooz/common/base_model.rb +13 -8
  41. data/lib/ooz/common/hash_diff.rb +6 -4
  42. data/lib/ooz/model/evolution.rb +1 -2
  43. data/lib/ooz/model/field/actions_list.rb +15 -0
  44. data/lib/ooz/model/field/checklist/item.rb +5 -0
  45. data/lib/ooz/model/field/checklist.rb +7 -1
  46. data/lib/ooz/model/field/contractor_entities.rb +14 -0
  47. data/lib/ooz/model/field/cross_reference.rb +5 -0
  48. data/lib/ooz/model/field/date.rb +5 -0
  49. data/lib/ooz/model/field/file.rb +7 -1
  50. data/lib/ooz/model/field/gauge.rb +6 -0
  51. data/lib/ooz/model/field/geo.rb +15 -0
  52. data/lib/ooz/model/field/image_gallery.rb +7 -1
  53. data/lib/ooz/model/field/mailbox.rb +14 -0
  54. data/lib/ooz/model/field/number.rb +5 -0
  55. data/lib/ooz/model/field/people.rb +5 -0
  56. data/lib/ooz/model/field/plain_text.rb +5 -0
  57. data/lib/ooz/model/field/rich_text.rb +5 -0
  58. data/lib/ooz/model/field/select/option.rb +5 -0
  59. data/lib/ooz/model/field/select.rb +7 -1
  60. data/lib/ooz/model/field.rb +24 -14
  61. data/lib/ooz/model/field_factory.rb +1 -1
  62. data/lib/ooz/model/ooze.rb +48 -17
  63. data/lib/ooz/model/section.rb +1 -3
  64. data/lib/ooz/model/stage.rb +10 -2
  65. data/lib/ooz/version.rb +1 -1
  66. data/lib/ooze-parser.rb +1 -0
  67. data/ooze-parser.gemspec +18 -17
  68. metadata +18 -4
@@ -7,14 +7,20 @@ module Ooz
7
7
  end
8
8
  end
9
9
 
10
- require_relative "select/option"
10
+ require_relative 'select/option'
11
11
 
12
12
  module Ooz
13
13
  module Model
14
14
  class Field
15
15
  class Select
16
16
  overridable_const :select_option, Model::Field::Select::Option
17
+
17
18
  include Methods
19
+
20
+ def clear
21
+ options.each(&:clear)
22
+ super
23
+ end
18
24
  end
19
25
  end
20
26
  end
@@ -3,6 +3,8 @@ module Ooz
3
3
  class Field < Base::Field
4
4
  module Methods
5
5
  def self.included(base)
6
+ super
7
+
6
8
  base.send(:include, InstanceMethods)
7
9
  end
8
10
 
@@ -18,25 +20,33 @@ module Ooz
18
20
  def stages
19
21
  section.stages
20
22
  end
23
+
24
+ def clear
25
+ self.content_translations = {}
26
+ self
27
+ end
21
28
  end
22
29
  end
23
30
 
24
31
  include Methods
25
-
26
32
  end
27
33
  end
28
34
  end
29
35
 
30
- require_relative "field/undefined"
31
- require_relative "field/select"
32
- require_relative "field/date"
33
- require_relative "field/plain_text"
34
- require_relative "field/rich_text"
35
- require_relative "field/number"
36
- require_relative "field/gauge"
37
- require_relative "field/people"
38
- require_relative "field/tag_field"
39
- require_relative "field/cross_reference"
40
- require_relative "field/file"
41
- require_relative "field/image_gallery"
42
- require_relative "field/checklist"
36
+ require_relative 'field/undefined'
37
+ require_relative 'field/select'
38
+ require_relative 'field/date'
39
+ require_relative 'field/plain_text'
40
+ require_relative 'field/rich_text'
41
+ require_relative 'field/number'
42
+ require_relative 'field/gauge'
43
+ require_relative 'field/people'
44
+ require_relative 'field/tag_field'
45
+ require_relative 'field/cross_reference'
46
+ require_relative 'field/file'
47
+ require_relative 'field/image_gallery'
48
+ require_relative 'field/checklist'
49
+ require_relative 'field/contractor_entities'
50
+ require_relative 'field/geo'
51
+ require_relative 'field/actions_list'
52
+ require_relative 'field/mailbox'
@@ -1,7 +1,7 @@
1
1
  module Ooz
2
2
  module Model
3
3
  class FieldFactory < Base::FieldFactory
4
- def_parent_class Model::Field
4
+ parent_class_is Model::Field
5
5
  end
6
6
  end
7
7
  end
@@ -7,16 +7,17 @@ module Ooz
7
7
  overridable_const :force_class, Model::Force
8
8
 
9
9
  def tagged?(tag, search_on: :tags)
10
- haystack = self.send(search_on)
10
+ haystack = send(search_on)
11
11
  haystack.include?(tag)
12
12
  end
13
13
 
14
14
  def stages?
15
- evolution && evolution.stages&.length > 0
15
+ evolution && evolution.stages&.length&.positive?
16
16
  end
17
17
 
18
18
  def stages
19
- return [] if !stages?
19
+ return [] unless stages?
20
+
20
21
  evolution.stages
21
22
  end
22
23
 
@@ -29,10 +30,8 @@ module Ooz
29
30
  stg.flow_node_ids.map do |id|
30
31
  [id, stg]
31
32
  end
32
- end.flatten(1).group_by do |pair|
33
- pair.first
34
- end.transform_values do |arr_pairs|
35
- arr_pairs.map {|pair| pair.last}
33
+ end.flatten(1).group_by(&:first).transform_values do |arr_pairs|
34
+ arr_pairs.map(&:last)
36
35
  end
37
36
  end
38
37
 
@@ -40,7 +39,11 @@ module Ooz
40
39
  membranes
41
40
  end
42
41
 
43
- def fields_hash(key: "_id", silent: true)
42
+ # @note
43
+ # 1. Usually used with the `label` as `key`.
44
+ # 2. Where multiple fields are spotted, first will prevail (resolve),
45
+ # except for `select` fields, that will be merged.
46
+ def fields_hash(key: '_id', silent: true)
44
47
  fields.group_by do |fld|
45
48
  fld.send(key)
46
49
  end.transform_values do |flds|
@@ -49,14 +52,17 @@ module Ooz
49
52
  else
50
53
  master = flds.first
51
54
  next master unless master.is_a?(Ooz::Model::Field::Select)
52
- rest = flds[1..-1]
55
+
56
+ rest = flds[1..]
57
+
53
58
  rest.each do |fld|
54
- if fld.is_a?(Ooz::Model::Field::Select)
55
- master.other ||= fld.other
56
- master.multiple ||= fld.multiple
57
- Ooz::Base::Field::Select.merge_options(master, fld, silent: silent)
58
- end
59
+ next unless fld.is_a?(Ooz::Model::Field::Select)
60
+
61
+ master.other ||= fld.other
62
+ master.multiple ||= fld.multiple
63
+ Ooz::Base::Field::Select.merge_options(master, fld, silent: silent)
59
64
  end
65
+
60
66
  master
61
67
  end
62
68
  end
@@ -85,11 +91,36 @@ module Ooz
85
91
  end
86
92
 
87
93
  def bindings_by_field
88
- bindings.group_by do |b|
89
- b.reference_id
90
- end
94
+ bindings.group_by(&:reference_id)
91
95
  end
92
96
 
97
+ def clear
98
+ membranes.each do |mem|
99
+ next unless mem.respond_to?(:clear)
100
+
101
+ mem.clear
102
+ end
103
+
104
+ self.mould_counter = nil
105
+ self.location_ids = []
106
+ self.other_tags = []
107
+ self.auto_selected_locations = []
108
+ self.location_propagation_store = nil
109
+ self.geo_coordinates = {}
110
+ self.creator_id = nil
111
+ self.creator_name = nil
112
+ self.permits = []
113
+ self.forces_timed_out = nil
114
+ self.update_histories = []
115
+ self._schedules = []
116
+ self.cloned_ids_mapping = {}
117
+
118
+ return self unless stages?
119
+
120
+ stages.each(&:clear)
121
+
122
+ self
123
+ end
93
124
  end
94
125
  end
95
126
  end
@@ -1,7 +1,6 @@
1
1
  module Ooz
2
2
  module Model
3
3
  class Section < Base::Section
4
-
5
4
  def stages
6
5
  ooze.stages_by_section[_id] || []
7
6
  end
@@ -11,7 +10,7 @@ module Ooz
11
10
  end
12
11
 
13
12
  def split?
14
- _type == "Enzyme::Flow::SplitNode"
13
+ _type == 'Enzyme::Flow::SplitNode'
15
14
  end
16
15
 
17
16
  def compact?
@@ -25,7 +24,6 @@ module Ooz
25
24
  def fields
26
25
  collect_from(field_ids, ooze.fields_hash)
27
26
  end
28
-
29
27
  end
30
28
  end
31
29
  end
@@ -5,14 +5,22 @@ module Ooz
5
5
  overridable_const :task_review_class, Model::Stage::Task::Review
6
6
 
7
7
  def sections?
8
- flow_node_ids && flow_node_ids.length > 0
8
+ return false unless flow_node_ids
9
+
10
+ flow_node_ids.length.positive?
9
11
  end
10
12
 
11
13
  def sections
12
- return [] if !sections?
14
+ return [] unless sections?
15
+
13
16
  collect_from(flow_node_ids, ooze.sections_hash)
14
17
  end
15
18
 
19
+ def clear
20
+ self.permits = []
21
+ self.contractor_permits = []
22
+ self
23
+ end
16
24
  end
17
25
  end
18
26
  end
data/lib/ooz/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ooz
2
- VERSION = "0.1.11"
2
+ VERSION = '0.1.12'.freeze
3
3
  end
data/lib/ooze-parser.rb CHANGED
@@ -3,6 +3,7 @@ require 'json'
3
3
  module Ooz
4
4
  end
5
5
 
6
+ require_relative 'ooz/version'
6
7
  require_relative 'ooz/common'
7
8
  require_relative 'ooz/base'
8
9
  require_relative 'ooz/model'
data/ooze-parser.gemspec CHANGED
@@ -1,26 +1,27 @@
1
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
- require "./lib/ooz/version"
4
+ require './lib/ooz/version'
5
5
 
6
- Gem::Specification.new do |s|
7
- s.name = "ooze-parser"
8
- s.version = Ooz::VERSION
9
- s.platform = Gem::Platform::RUBY
10
- s.authors = ["Oscar Segura"]
11
- s.email = ["oscar@ecoportal.co.nz"]
12
- s.date = %q{2018-11-24}
13
- s.summary = %q{ooze-parser to boost data integration and treatment}
14
- s.homepage = "https://www.ecoportal.com"
15
- s.licenses = %w[MIT]
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'ooze-parser'
8
+ spec.version = Ooz::VERSION
9
+ spec.platform = Gem::Platform::RUBY
10
+ spec.authors = ['Oscar Segura']
11
+ spec.email = ['oscar@ecoportal.co.nz']
12
+ spec.summary = 'ooze-parser to boost data integration and treatment'
13
+ spec.homepage = 'https://www.ecoportal.com'
14
+ spec.licenses = %w[MIT]
16
15
 
17
- s.files = `git ls-files -z`.split("\x0").reject do |f|
16
+ spec.metadata['rubygems_mfa_required'] = 'true'
17
+
18
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
19
  f.match(%r{^(test|spec|features)/})
19
20
  end
20
21
 
21
- #s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
22
- #s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
23
- s.require_paths = ["lib"]
22
+ #spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
+ #spec.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
24
+ spec.require_paths = ['lib']
24
25
 
25
- s.add_development_dependency "rspec", "~> 3", ">= 3.8"
26
+ spec.add_development_dependency 'rspec', '~> 3', '>= 3.8'
26
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ooze-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-24 00:00:00.000000000 Z
11
+ date: 2025-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -38,20 +38,28 @@ extensions: []
38
38
  extra_rdoc_files: []
39
39
  files:
40
40
  - ".gitignore"
41
+ - ".rubocop.yml"
42
+ - ".ruby-version"
43
+ - ".yardopts"
41
44
  - LICENSE
45
+ - README.md
42
46
  - lib/ooz/base.rb
43
47
  - lib/ooz/base/evolution.rb
44
48
  - lib/ooz/base/field.rb
49
+ - lib/ooz/base/field/actions_list.rb
45
50
  - lib/ooz/base/field/checklist.rb
46
51
  - lib/ooz/base/field/checklist/item.rb
52
+ - lib/ooz/base/field/contractor_entities.rb
47
53
  - lib/ooz/base/field/cross_reference.rb
48
54
  - lib/ooz/base/field/date.rb
49
55
  - lib/ooz/base/field/file.rb
50
56
  - lib/ooz/base/field/file/file.rb
51
57
  - lib/ooz/base/field/gauge.rb
52
58
  - lib/ooz/base/field/gauge/stop.rb
59
+ - lib/ooz/base/field/geo.rb
53
60
  - lib/ooz/base/field/image_gallery.rb
54
61
  - lib/ooz/base/field/image_gallery/image.rb
62
+ - lib/ooz/base/field/mailbox.rb
55
63
  - lib/ooz/base/field/number.rb
56
64
  - lib/ooz/base/field/people.rb
57
65
  - lib/ooz/base/field/plain_text.rb
@@ -63,6 +71,7 @@ files:
63
71
  - lib/ooz/base/field_factory.rb
64
72
  - lib/ooz/base/force.rb
65
73
  - lib/ooz/base/force/binding.rb
74
+ - lib/ooz/base/genome.rb
66
75
  - lib/ooz/base/model.rb
67
76
  - lib/ooz/base/model_factory.rb
68
77
  - lib/ooz/base/ooze.rb
@@ -94,16 +103,20 @@ files:
94
103
  - lib/ooz/model.rb
95
104
  - lib/ooz/model/evolution.rb
96
105
  - lib/ooz/model/field.rb
106
+ - lib/ooz/model/field/actions_list.rb
97
107
  - lib/ooz/model/field/checklist.rb
98
108
  - lib/ooz/model/field/checklist/item.rb
109
+ - lib/ooz/model/field/contractor_entities.rb
99
110
  - lib/ooz/model/field/cross_reference.rb
100
111
  - lib/ooz/model/field/date.rb
101
112
  - lib/ooz/model/field/file.rb
102
113
  - lib/ooz/model/field/file/file.rb
103
114
  - lib/ooz/model/field/gauge.rb
104
115
  - lib/ooz/model/field/gauge/stop.rb
116
+ - lib/ooz/model/field/geo.rb
105
117
  - lib/ooz/model/field/image_gallery.rb
106
118
  - lib/ooz/model/field/image_gallery/image.rb
119
+ - lib/ooz/model/field/mailbox.rb
107
120
  - lib/ooz/model/field/number.rb
108
121
  - lib/ooz/model/field/people.rb
109
122
  - lib/ooz/model/field/plain_text.rb
@@ -124,7 +137,8 @@ files:
124
137
  homepage: https://www.ecoportal.com
125
138
  licenses:
126
139
  - MIT
127
- metadata: {}
140
+ metadata:
141
+ rubygems_mfa_required: 'true'
128
142
  post_install_message:
129
143
  rdoc_options: []
130
144
  require_paths:
@@ -140,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
154
  - !ruby/object:Gem::Version
141
155
  version: '0'
142
156
  requirements: []
143
- rubygems_version: 3.4.12
157
+ rubygems_version: 3.5.23
144
158
  signing_key:
145
159
  specification_version: 4
146
160
  summary: ooze-parser to boost data integration and treatment