ooze-parser 0.1.7

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 (86) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/LICENSE +21 -0
  4. data/lib/ooz/base/evolution.rb +9 -0
  5. data/lib/ooz/base/field/checklist/item.rb +12 -0
  6. data/lib/ooz/base/field/checklist.rb +22 -0
  7. data/lib/ooz/base/field/cross_reference.rb +10 -0
  8. data/lib/ooz/base/field/date.rb +11 -0
  9. data/lib/ooz/base/field/file/file.rb +11 -0
  10. data/lib/ooz/base/field/file.rb +21 -0
  11. data/lib/ooz/base/field/gauge/stop.rb +12 -0
  12. data/lib/ooz/base/field/gauge.rb +22 -0
  13. data/lib/ooz/base/field/image_gallery/image.rb +14 -0
  14. data/lib/ooz/base/field/image_gallery.rb +22 -0
  15. data/lib/ooz/base/field/number.rb +9 -0
  16. data/lib/ooz/base/field/people.rb +11 -0
  17. data/lib/ooz/base/field/plain_text.rb +9 -0
  18. data/lib/ooz/base/field/rich_text.rb +9 -0
  19. data/lib/ooz/base/field/select/option.rb +12 -0
  20. data/lib/ooz/base/field/select.rb +22 -0
  21. data/lib/ooz/base/field/tag_field.rb +9 -0
  22. data/lib/ooz/base/field/undefined.rb +8 -0
  23. data/lib/ooz/base/field.rb +24 -0
  24. data/lib/ooz/base/field_factory.rb +9 -0
  25. data/lib/ooz/base/force/binding.rb +10 -0
  26. data/lib/ooz/base/force.rb +20 -0
  27. data/lib/ooz/base/model.rb +37 -0
  28. data/lib/ooz/base/model_factory.rb +49 -0
  29. data/lib/ooz/base/ooze.rb +30 -0
  30. data/lib/ooz/base/section.rb +10 -0
  31. data/lib/ooz/base/stage/task/action/escalate.rb +12 -0
  32. data/lib/ooz/base/stage/task/action/reminder.rb +12 -0
  33. data/lib/ooz/base/stage/task/action/tag.rb +13 -0
  34. data/lib/ooz/base/stage/task/action.rb +27 -0
  35. data/lib/ooz/base/stage/task/action_factory.rb +12 -0
  36. data/lib/ooz/base/stage/task/completion.rb +10 -0
  37. data/lib/ooz/base/stage/task/priority.rb +11 -0
  38. data/lib/ooz/base/stage/task/review.rb +11 -0
  39. data/lib/ooz/base/stage/task/scheduled_callback.rb +14 -0
  40. data/lib/ooz/base/stage/task/strategy/direct.rb +13 -0
  41. data/lib/ooz/base/stage/task/strategy/editable.rb +13 -0
  42. data/lib/ooz/base/stage/task/strategy/prior.rb +13 -0
  43. data/lib/ooz/base/stage/task/strategy/prior_supervisor.rb +13 -0
  44. data/lib/ooz/base/stage/task/strategy/scheduler.rb +14 -0
  45. data/lib/ooz/base/stage/task/strategy/supervisor.rb +12 -0
  46. data/lib/ooz/base/stage/task/strategy.rb +21 -0
  47. data/lib/ooz/base/stage/task/strategy_factory.rb +12 -0
  48. data/lib/ooz/base/stage/task.rb +33 -0
  49. data/lib/ooz/base/stage.rb +28 -0
  50. data/lib/ooz/base.rb +14 -0
  51. data/lib/ooz/common/base_class.rb +63 -0
  52. data/lib/ooz/common/base_factory.rb +9 -0
  53. data/lib/ooz/common/base_model.rb +59 -0
  54. data/lib/ooz/common/hash_diff.rb +36 -0
  55. data/lib/ooz/common.rb +9 -0
  56. data/lib/ooz/model/evolution.rb +12 -0
  57. data/lib/ooz/model/field/checklist/item.rb +13 -0
  58. data/lib/ooz/model/field/checklist.rb +21 -0
  59. data/lib/ooz/model/field/cross_reference.rb +9 -0
  60. data/lib/ooz/model/field/date.rb +9 -0
  61. data/lib/ooz/model/field/file/file.rb +13 -0
  62. data/lib/ooz/model/field/file.rb +21 -0
  63. data/lib/ooz/model/field/gauge/stop.rb +13 -0
  64. data/lib/ooz/model/field/gauge.rb +21 -0
  65. data/lib/ooz/model/field/image_gallery/image.rb +13 -0
  66. data/lib/ooz/model/field/image_gallery.rb +21 -0
  67. data/lib/ooz/model/field/number.rb +9 -0
  68. data/lib/ooz/model/field/people.rb +9 -0
  69. data/lib/ooz/model/field/plain_text.rb +9 -0
  70. data/lib/ooz/model/field/rich_text.rb +9 -0
  71. data/lib/ooz/model/field/select/option.rb +13 -0
  72. data/lib/ooz/model/field/select.rb +21 -0
  73. data/lib/ooz/model/field/tag_field.rb +9 -0
  74. data/lib/ooz/model/field/undefined.rb +9 -0
  75. data/lib/ooz/model/field.rb +42 -0
  76. data/lib/ooz/model/field_factory.rb +7 -0
  77. data/lib/ooz/model/force/binding.rb +16 -0
  78. data/lib/ooz/model/force.rb +16 -0
  79. data/lib/ooz/model/ooze.rb +72 -0
  80. data/lib/ooz/model/section.rb +31 -0
  81. data/lib/ooz/model/stage.rb +18 -0
  82. data/lib/ooz/model.rb +12 -0
  83. data/lib/ooz/version.rb +3 -0
  84. data/lib/ooze-parser.rb +8 -0
  85. data/ooze-parser.gemspec +26 -0
  86. metadata +148 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f3d6d9f5b2a81fc071bed9f32d21c65d07554beb
4
+ data.tar.gz: 1ca9904ce21f3396a00ac70f290218ef9171d1c1
5
+ SHA512:
6
+ metadata.gz: 1ee713e3cf2718b338ca141c5f400f1931ea97c06914fd23f0d376131fdb32300b1f54e049bbf53a7697c7fe111b70b946f98e74e3fae250c3f046c0d5085258
7
+ data.tar.gz: dab2f8146b6a16a3096e1423b907aac2d863a18f8671e03ba6869681b9fe3e8bc2333a686e4a6f2b0ad9754a4112a3335a846e82112ed9ee4442e1df51e23563
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ *.gem
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2018 Oscar Segura
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,9 @@
1
+ module Ooz
2
+ module Base
3
+ class Evolution < Base::Model
4
+ overridable_const :stage_class, Base::Stage
5
+ passthrough :_id, :patch_ver, to: :doc
6
+ passthrough_arr :stages, to: :doc, klass: :stage_class
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class Checklist
5
+ class Item < Base::Model
6
+ passthrough :_id, :_type, :weight, :patch_ver, to: :doc
7
+ passthrough :label, :checked, to: :doc
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,22 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class Checklist < Field
5
+ end
6
+ end
7
+ end
8
+ end
9
+
10
+ require_relative "checklist/item"
11
+
12
+ module Ooz
13
+ module Base
14
+ class Field
15
+ class Checklist
16
+ overridable_const :checklist_item_class, Base::Field::Checklist::Item
17
+ passthrough :complete, to: :doc
18
+ passthrough_arr :items, to: :doc, klass: :checklist_item_class
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,10 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class CrossReference < Field
5
+ passthrough :reference_ids, :register_id, :hide_create, :hide_attach, :hide_metadata, :hide_dashboards,
6
+ :display_fields, :display_fields_in_lookup, to: :doc
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class Date < Field
5
+ passthrough :show_time, :past_only, :today_button, :create_event, :event_id,
6
+ :remind_me_in, :value, :renews, :renews_unit, :renews_every, :renews_until,
7
+ to: :doc
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class File
5
+ class File < Base::Model
6
+ passthrough :_id, :_type, :position, :file_container_id, to: :doc
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,21 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class File < Field
5
+ end
6
+ end
7
+ end
8
+ end
9
+
10
+ require_relative "file/file"
11
+
12
+ module Ooz
13
+ module Base
14
+ class Field
15
+ class File
16
+ overridable_const :file_class, Base::Field::File::File
17
+ passthrough_arr :items, to: :doc, klass: :file_class
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,12 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class Gauge
5
+ class Stop < Base::Model
6
+ passthrough :_id, :_type, :patch_ver, to: :doc
7
+ passthrough :threshold, :color, to: :doc
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,22 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class Gauge < Field
5
+ end
6
+ end
7
+ end
8
+ end
9
+
10
+ require_relative "gauge/stop"
11
+
12
+ module Ooz
13
+ module Base
14
+ class Field
15
+ class Gauge
16
+ overridable_const :gauge_stop_class, Base::Field::Gauge::Stop
17
+ passthrough :value, :max, to: :doc
18
+ passthrough_arr :stops, to: :doc, klass: :gauge_stop_class
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,14 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class ImageGallery
5
+ class Image < Base::Model
6
+ passthrough :_id, :_type, :type_string, :weight, :patch_ver, to: :doc
7
+ passthrough :file_file_name, :file_file_size, :file_content_type, :file_fingerprint, to: :doc
8
+ passthrough :file_updated_at, :upload_id, :paperclip_assoc, to: :doc
9
+ passthrough :height, :width, to: :doc
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,22 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class ImageGallery < Field
5
+ end
6
+ end
7
+ end
8
+ end
9
+
10
+ require_relative "image_gallery/image"
11
+
12
+ module Ooz
13
+ module Base
14
+ class Field
15
+ class ImageGallery
16
+ overridable_const :image_class, Base::Field::ImageGallery::Image
17
+ passthrough :stretch, :no_popup, :hide_options, :layout, to: :doc
18
+ passthrough_arr :images, to: :doc, klass: :image_class
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,9 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class Number < Field
5
+ passthrough :value, to: :doc
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class People < Field
5
+ passthrough :people_ids, :singular, :attach_mode, :is_me_button, :person_schema_id, :viewable_fields,
6
+ :attached_people_permissions_enabled, :attached_people_permissions_editable,
7
+ to: :doc
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class PlainText < Field
5
+ passthrough :value, :multiline, to: :doc
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class RichText < Field
5
+ passthrough :content, to: :doc
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class Select
5
+ class Option < Base::Model
6
+ passthrough :_id, :_type, :weight, :patch_ver, to: :doc
7
+ passthrough :name, :value, :selected, to: :doc
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,22 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class Select < Field
5
+ end
6
+ end
7
+ end
8
+ end
9
+
10
+ require_relative "select/option"
11
+
12
+ module Ooz
13
+ module Base
14
+ class Field
15
+ class Select
16
+ overridable_const :select_option, Base::Field::Select::Option
17
+ passthrough :multiple, :flat, :data_type, :other, :other_desc, to: :doc
18
+ passthrough_arr :options, to: :doc, klass: :select_option
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,9 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class TagField < Field
5
+ passthrough :button_text, :single_select, :use_defaults, to: :doc
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ module Ooz
2
+ module Base
3
+ class Field
4
+ class Undefined < Field
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,24 @@
1
+ module Ooz
2
+ module Base
3
+ class Field < Base::Model
4
+ passthrough :_id, :_type, :label, :tooltip, :patch_ver, to: :doc
5
+ passthrough :global_binding, to: :doc
6
+ passthrough :hidden, :deindex, :accent, to: :doc
7
+ passthrough :required, :hide_view, :hidden_on_reports, to: :doc
8
+ end
9
+ end
10
+ end
11
+
12
+ require_relative "field/undefined"
13
+ require_relative "field/select"
14
+ require_relative "field/date"
15
+ require_relative "field/plain_text"
16
+ require_relative "field/rich_text"
17
+ require_relative "field/number"
18
+ require_relative "field/gauge"
19
+ require_relative "field/people"
20
+ require_relative "field/tag_field"
21
+ require_relative "field/cross_reference"
22
+ require_relative "field/file"
23
+ require_relative "field/image_gallery"
24
+ require_relative "field/checklist"
@@ -0,0 +1,9 @@
1
+ module Ooz
2
+ module Base
3
+ class FieldFactory < ModelFactory
4
+ def_parent_class Base::Field
5
+ def_white_classes "Select", "TagField", "Date", "PlainText", "RichText",
6
+ "Number", "Gauge", "People", "CrossReference", "File", "ImageGallery", "Checklist"
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ module Ooz
2
+ module Base
3
+ class Force
4
+ class Binding < Base::Model
5
+ passthrough :_id, :name, :_type, :patch_ver, to: :doc
6
+ passthrough :reference_id, to: :doc
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,20 @@
1
+ module Ooz
2
+ module Base
3
+ class Force < Base::Model
4
+ end
5
+ end
6
+ end
7
+
8
+ require_relative "force/binding"
9
+
10
+ module Ooz
11
+ module Base
12
+ class Force
13
+ overridable_const :binding_class, Base::Force::Binding
14
+ passthrough :_id, :name, :weight, :patch_ver, to: :doc
15
+ passthrough :script, to: :doc
16
+ passthrough_arr :binings, to: :doc, klass: :binding_class
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,37 @@
1
+ module Ooz
2
+ module Base
3
+ class Model < Common::BaseModel
4
+
5
+ attr_reader :root
6
+
7
+ def initialize(*args, root: nil)
8
+ super(*args)
9
+ @root = root
10
+ end
11
+
12
+ def ooze
13
+ self.is_a?(Ooze)? self : root && root.ooze
14
+ end
15
+
16
+ private
17
+
18
+ def to_hash(arr)
19
+ raise "Sorry, expected Array, given: #{arr.class.name}" if !arr.is_a?(Array)
20
+ arr.map do |e|
21
+ [e._id, e]
22
+ end.to_h
23
+ end
24
+
25
+ def collect_from(ids, elements_hash)
26
+ raise "Sorry, 'ids' expected to be Array, given: #{arr.class.name}" if !ids.is_a?(Array)
27
+ raise "Expected hash, given: #{elements_hash.class.name}" if !elements_hash.is_a?(Hash)
28
+ ids.map do |id|
29
+ elements_hash[id].tap do |e|
30
+ puts "Warning: there is no element with id '#{id}'" if !e
31
+ end
32
+ end
33
+ end
34
+
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,49 @@
1
+ module Ooz
2
+ module Base
3
+ class ModelFactory < Common::BaseFactory
4
+ class << self
5
+ def def_white_classes (*str_classes)
6
+ str_classes = str_classes.map do |cls|
7
+ case cls
8
+ when cls.respond_to?(:name)
9
+ cls.name
10
+ when Symbol
11
+ cls.to_s
12
+ when String
13
+ cls
14
+ end
15
+ end.compact
16
+ overridable_const :white_classes, str_classes
17
+ end
18
+
19
+ def def_parent_class (parent_class)
20
+ msg = "Expected a valid parent class for you factory, from which the other classes inherit. Given #{parent_class}"
21
+ valid_class = parent_class && parent_class.is_a?(Class)
22
+ raise msg unless valid_class
23
+
24
+ overridable_const :parent_class, parent_class
25
+ overridable_const :base_namespace, parent_class.name
26
+ end
27
+
28
+ def new(*args)
29
+ raise "You must use 'def_parent_class' to initialize your Factory class" if !defined?(parent_class)
30
+
31
+ type = args.first&.dig("_type")&.split("::")&.last
32
+ raise "Your object should have field '_type' defined" if !type
33
+
34
+ if white_classes.include?(type)
35
+ str_class = "#{base_namespace}::#{type}"
36
+ raise "This class does not exist: #{str_class}" if !Object.const_defined?(str_class)
37
+ klass = Object.const_get(str_class)
38
+ else
39
+ str_class = "#{base_namespace}::Undefined"
40
+ klass = Object.const_defined?(str_class)? Object.const_get(str_class) : parent_class
41
+ end
42
+
43
+ klass.new(*args)
44
+ end
45
+
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,30 @@
1
+ module Ooz
2
+ module Base
3
+ class Ooze < Base::Model
4
+ overridable_const :evolution_class, Base::Evolution
5
+ overridable_const :section_class, Base::Section
6
+ overridable_const :field_factory_class, Base::FieldFactory
7
+ overridable_const :force_class, Base::Force
8
+
9
+ passthrough :_id, :template_id, :name, :organization_id, :patch_ver, to: :doc
10
+ passthrough :created_at, :updated_at, :time_zone, to: :doc
11
+ passthrough :state, :status, to: :doc
12
+ passthrough :votes_enabled, :upvotes, :downvotes, to: :doc
13
+ passthrough :tags, :compiled_tags, :base_tags, to: :doc
14
+ passthrough :theme_id, :icon, :ss_error, to: :doc
15
+ passthrough :disable_direct_permissions, :task_priority, to: :doc
16
+
17
+ passthrough_cls :evolution, to: :doc, klass: :evolution_class
18
+ passthrough_arr :flow_nodes, to: :doc, klass: :section_class
19
+ passthrough_arr :membranes, to: :doc, klass: :field_factory_class
20
+ passthrough_arr :forces, to: :doc, klass: :force_class
21
+
22
+ def initialize(*args)
23
+ super(*args)
24
+
25
+ #pp evolution_class
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,10 @@
1
+ module Ooz
2
+ module Base
3
+ class Section < Base::Model
4
+ passthrough :_id, :weight, :_type, :patch_ver, to: :doc
5
+ passthrough :heading, :left_heading, :right_heading, to: :doc
6
+ passthrough :minimized, :hidden, to: :doc
7
+ passthrough :membrane_ids, :left_membrane_ids, :right_membrane_ids, to: :doc
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,12 @@
1
+ module Ooz
2
+ module Base
3
+ class Stage
4
+ class Task
5
+ class Action
6
+ class Escalate < Action
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module Ooz
2
+ module Base
3
+ class Stage
4
+ class Task
5
+ class Action
6
+ class Reminder < Action
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ module Ooz
2
+ module Base
3
+ class Stage
4
+ class Task
5
+ class Action
6
+ class Tag < Action
7
+ passthrough :tags, to: :doc
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,27 @@
1
+ module Ooz
2
+ module Base
3
+ class Stage
4
+ class Task
5
+ class Action < Base::Model
6
+ end
7
+ end
8
+ end
9
+ end
10
+ end
11
+
12
+ require_relative "action/reminder"
13
+ require_relative "action/escalate"
14
+ require_relative "action/tag"
15
+
16
+
17
+ module Ooz
18
+ module Base
19
+ class Stage
20
+ class Task
21
+ class Action
22
+ passthrough :_id, :patch_ver, :_type, to: :doc
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,12 @@
1
+ module Ooz
2
+ module Base
3
+ class Stage
4
+ class Task
5
+ class ActionFactory < ModelFactory
6
+ def_parent_class Base::Stage::Task::Action
7
+ def_white_classes "Reminder", "Escalate", "Tag"
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ module Ooz
2
+ module Base
3
+ class Stage
4
+ class Task
5
+ class Completion < Task
6
+ end
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ module Ooz
2
+ module Base
3
+ class Stage
4
+ class Task
5
+ class Priority < Base::Model
6
+ passthrough :none, :low, :medium, :high, to: :doc
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Ooz
2
+ module Base
3
+ class Stage
4
+ class Task
5
+ class Review < Task
6
+ passthrough :required_sign_offs, to: :doc
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ module Ooz
2
+ module Base
3
+ class Stage
4
+ class Task
5
+ class ScheduledCallback < Base::Model
6
+ overridable_const :action_factory_class, Base::Stage::Task::ActionFactory
7
+ passthrough :_id, :patch_ver, to: :doc
8
+ passthrough :due_ctr, :due_unit, :recurs, :recurs_unit, :recurs_ctr, to: :doc
9
+ passthrough_arr :actions, to: :doc, klass: action_factory_class
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ module Ooz
2
+ module Base
3
+ class Stage
4
+ class Task
5
+ class Strategy
6
+ class Direct < Strategy
7
+ passthrough :user_ids, to: :doc
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end