automation_object 0.7.6 → 0.8.0

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 (125) hide show
  1. checksums.yaml +4 -4
  2. data/lib/automation_object/blue_print.rb +1 -0
  3. data/lib/automation_object/blue_print/composite/{automatic_onload_modal.rb → automatic_modal_change.rb} +3 -4
  4. data/lib/automation_object/blue_print/composite/base.rb +1 -0
  5. data/lib/automation_object/blue_print/composite/custom_method.rb +2 -3
  6. data/lib/automation_object/blue_print/composite/element.rb +2 -3
  7. data/lib/automation_object/blue_print/composite/element_array.rb +2 -3
  8. data/lib/automation_object/blue_print/composite/element_hash.rb +2 -3
  9. data/lib/automation_object/blue_print/composite/helpers/container_helper.rb +75 -0
  10. data/lib/automation_object/blue_print/composite/helpers/element_helper.rb +30 -1
  11. data/lib/automation_object/blue_print/composite/helpers/multiple_elements_helper.rb +1 -0
  12. data/lib/automation_object/blue_print/composite/hook.rb +18 -6
  13. data/lib/automation_object/blue_print/composite/hook_action.rb +3 -4
  14. data/lib/automation_object/blue_print/composite/hook_element_requirements.rb +3 -4
  15. data/lib/automation_object/blue_print/composite/modal.rb +12 -9
  16. data/lib/automation_object/blue_print/composite/screen.rb +17 -14
  17. data/lib/automation_object/blue_print/composite/top.rb +3 -2
  18. data/lib/automation_object/blue_print/composite/view.rb +8 -7
  19. data/lib/automation_object/blue_print/hash_adapter.rb +1 -0
  20. data/lib/automation_object/blue_print/hash_adapter/{automatic_onload_modal.rb → automatic_modal_change.rb} +3 -2
  21. data/lib/automation_object/blue_print/hash_adapter/composite.rb +1 -0
  22. data/lib/automation_object/blue_print/hash_adapter/custom_method.rb +1 -0
  23. data/lib/automation_object/blue_print/hash_adapter/element.rb +2 -0
  24. data/lib/automation_object/blue_print/hash_adapter/element_array.rb +1 -0
  25. data/lib/automation_object/blue_print/hash_adapter/element_hash.rb +1 -0
  26. data/lib/automation_object/blue_print/hash_adapter/helpers/element_helper.rb +8 -2
  27. data/lib/automation_object/blue_print/hash_adapter/helpers/multiple_elements_helper.rb +1 -0
  28. data/lib/automation_object/blue_print/hash_adapter/helpers/validation_error.rb +2 -1
  29. data/lib/automation_object/blue_print/hash_adapter/helpers/validation_helper.rb +1 -0
  30. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate.rb +1 -0
  31. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_allowed_keys.rb +1 -0
  32. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_element_presence_of.rb +1 -0
  33. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_instance_of.rb +1 -0
  34. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_modal_presence_of.rb +1 -0
  35. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_presence_of.rb +1 -0
  36. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_screen_presence_of.rb +1 -0
  37. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_view_presence_of.rb +1 -0
  38. data/lib/automation_object/blue_print/hash_adapter/hook.rb +2 -1
  39. data/lib/automation_object/blue_print/hash_adapter/hook_action.rb +4 -3
  40. data/lib/automation_object/blue_print/hash_adapter/hook_element_requirements.rb +2 -1
  41. data/lib/automation_object/blue_print/hash_adapter/modal.rb +2 -1
  42. data/lib/automation_object/blue_print/hash_adapter/screen.rb +14 -13
  43. data/lib/automation_object/blue_print/hash_adapter/top.rb +3 -2
  44. data/lib/automation_object/blue_print/hash_adapter/view.rb +12 -11
  45. data/lib/automation_object/blue_print/yaml_adapter.rb +1 -0
  46. data/lib/automation_object/driver.rb +1 -0
  47. data/lib/automation_object/driver/appium_adapter/driver.rb +2 -1
  48. data/lib/automation_object/driver/appium_adapter/element.rb +1 -0
  49. data/lib/automation_object/driver/base.rb +1 -0
  50. data/lib/automation_object/driver/common_selenium/driver.rb +1 -0
  51. data/lib/automation_object/driver/common_selenium/element.rb +1 -0
  52. data/lib/automation_object/driver/common_selenium/element_geometry.rb +1 -0
  53. data/lib/automation_object/driver/driver.rb +1 -0
  54. data/lib/automation_object/driver/element.rb +1 -0
  55. data/lib/automation_object/driver/nokogiri_adapter/driver.rb +5 -8
  56. data/lib/automation_object/driver/nokogiri_adapter/element.rb +9 -14
  57. data/lib/automation_object/driver/nokogiri_adapter/error.rb +1 -0
  58. data/lib/automation_object/driver/nokogiri_adapter/form.rb +1 -0
  59. data/lib/automation_object/driver/nokogiri_adapter/request.rb +1 -0
  60. data/lib/automation_object/driver/nokogiri_adapter/session.rb +1 -0
  61. data/lib/automation_object/driver/nokogiri_adapter/window.rb +1 -0
  62. data/lib/automation_object/driver/selenium_adapter/driver.rb +1 -0
  63. data/lib/automation_object/driver/selenium_adapter/element.rb +1 -0
  64. data/lib/automation_object/dsl.rb +4 -2
  65. data/lib/automation_object/dsl/_base.rb +11 -1
  66. data/lib/automation_object/dsl/_error.rb +71 -0
  67. data/lib/automation_object/dsl/_proxy.rb +1 -0
  68. data/lib/automation_object/dsl/element.rb +2 -2
  69. data/lib/automation_object/dsl/element_array.rb +2 -2
  70. data/lib/automation_object/dsl/element_hash.rb +2 -2
  71. data/lib/automation_object/dsl/modal.rb +47 -2
  72. data/lib/automation_object/dsl/screen.rb +67 -3
  73. data/lib/automation_object/dsl/top.rb +19 -0
  74. data/lib/automation_object/framework.rb +18 -1
  75. data/lib/automation_object/helpers/composite.rb +3 -1
  76. data/lib/automation_object/helpers/composite_hook.rb +1 -0
  77. data/lib/automation_object/helpers/file.rb +1 -0
  78. data/lib/automation_object/helpers/hash.rb +1 -0
  79. data/lib/automation_object/helpers/kernel.rb +1 -0
  80. data/lib/automation_object/helpers/reflection.rb +1 -0
  81. data/lib/automation_object/helpers/string.rb +1 -0
  82. data/lib/automation_object/proxy/mutex_proxy.rb +1 -0
  83. data/lib/automation_object/proxy/proxy.rb +1 -0
  84. data/lib/automation_object/proxy/throttle_proxy.rb +2 -1
  85. data/lib/automation_object/state.rb +5 -1
  86. data/lib/automation_object/state/_base.rb +2 -1
  87. data/lib/automation_object/state/_common_element.rb +5 -0
  88. data/lib/automation_object/state/_error.rb +1 -0
  89. data/lib/automation_object/state/automatic_modal_change.rb +13 -0
  90. data/lib/automation_object/state/automatic_screen_changes.rb +13 -0
  91. data/lib/automation_object/state/element.rb +2 -1
  92. data/lib/automation_object/state/element_array.rb +2 -1
  93. data/lib/automation_object/state/element_hash.rb +2 -1
  94. data/lib/automation_object/state/element_proxy.rb +1 -0
  95. data/lib/automation_object/state/helpers/automatic_routing.rb +96 -0
  96. data/lib/automation_object/state/helpers/container_helper.rb +46 -0
  97. data/lib/automation_object/state/hook.rb +1 -0
  98. data/lib/automation_object/state/hook_action.rb +1 -0
  99. data/lib/automation_object/state/hook_actions/action_loop.rb +1 -0
  100. data/lib/automation_object/state/hook_actions/change_screen.rb +1 -0
  101. data/lib/automation_object/state/hook_actions/change_to_previous_screen.rb +1 -0
  102. data/lib/automation_object/state/hook_actions/close_modal.rb +1 -0
  103. data/lib/automation_object/state/hook_actions/close_screen.rb +1 -0
  104. data/lib/automation_object/state/hook_actions/element_requirement.rb +1 -0
  105. data/lib/automation_object/state/hook_actions/new_screen.rb +1 -0
  106. data/lib/automation_object/state/hook_actions/possible_screen_changes.rb +1 -0
  107. data/lib/automation_object/state/hook_actions/reset_screen.rb +1 -0
  108. data/lib/automation_object/state/hook_actions/show_modal.rb +1 -0
  109. data/lib/automation_object/state/hook_actions/sleep.rb +1 -0
  110. data/lib/automation_object/state/hook_actions/wait_for_elements.rb +1 -0
  111. data/lib/automation_object/state/modal.rb +5 -14
  112. data/lib/automation_object/state/screen.rb +33 -19
  113. data/lib/automation_object/state/top.rb +17 -2
  114. data/lib/automation_object/step_definitions.rb +3 -4
  115. data/lib/automation_object/step_definitions/element.rb +22 -23
  116. data/lib/automation_object/step_definitions/element_array.rb +26 -27
  117. data/lib/automation_object/step_definitions/element_hash.rb +26 -27
  118. data/lib/automation_object/step_definitions/modal.rb +31 -0
  119. data/lib/automation_object/step_definitions/screen.rb +22 -10
  120. data/lib/automation_object/step_definitions/support/cache.rb +5 -2
  121. data/lib/automation_object/step_definitions/support/element_array.rb +1 -1
  122. data/lib/automation_object/step_definitions/support/parse.rb +1 -1
  123. data/lib/automation_object/version.rb +2 -1
  124. metadata +59 -39
  125. data/lib/automation_object/step_definitions/support/minitest.rb +0 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3e852570c1534fa6f78f8f1c0cfd03ce6823b849
4
- data.tar.gz: 02ec9763691fb5500d68b5ab3de7441d9ab84153
3
+ metadata.gz: fb61b7d19da29a48f5444b2b1abe5ef3813daf05
4
+ data.tar.gz: afe8919e786499ef1ba563f93c5060d9bdab3c44
5
5
  SHA512:
6
- metadata.gz: 5a8267d04713753f765933b67938983117a351ba8cb7505db24d1cd7242256c5f8fdbd553aa40fac5386a79e8764235d9fa4293d57d005ca89ab77b8d20a0c2a
7
- data.tar.gz: abd5d37f408e8d7f71c898555730b94867293e1c1bb6063dc443084f854555a8435f4848dc9ea31c0d2a47570baf5c8e03c58ed6fb1de134d290230728dbbbe9
6
+ metadata.gz: 5d7b4c210aee08a2ee8a568cdf5d9cfb19e0e3885ee94e011233aa42761fa79cd84bd6a833b7542fefd084fd7eb6d09ada93981b45afd8bb99b750a105fc0c87
7
+ data.tar.gz: 61866d54c863b0f462eb3c8cab35fcf10c890c8d46ad1cea36e9ce3ed9621288b85385fd66b179f1014105f6072bef07df53e8e34cc02cf8862bbb26363ab719
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require_relative 'blue_print/hash_adapter'
3
4
  require_relative 'blue_print/yaml_adapter'
4
5
 
@@ -1,14 +1,13 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Require parent class
3
4
  require_relative 'base'
4
5
 
5
6
  module AutomationObject
6
7
  module BluePrint
7
8
  module Composite
8
- # AutomaticOnloadModal composite class, passing method to adapter only
9
- # Hoping to improve code completion and standard interface where
10
- # classes use this as a template to add additional adapters
11
- class AutomaticOnloadModal < Base
9
+ # AutomaticModalChange composite class
10
+ class AutomaticModalChange < Base
12
11
  # @return [Symbol, nil]
13
12
  def modal_name
14
13
  adapter.modal_name
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require_relative '../../../../lib/automation_object/helpers/composite'
3
4
 
4
5
  module AutomationObject
@@ -1,13 +1,12 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Require parent class
3
4
  require_relative 'base'
4
5
 
5
6
  module AutomationObject
6
7
  module BluePrint
7
8
  module Composite
8
- # CustomMethod composite class, passing method to adapter only
9
- # Hoping to improve code completion and standard interface where
10
- # classes use this as a template to add additional adapters
9
+ # CustomMethod composite class
11
10
  class CustomMethod < Base
12
11
  # @return [Symbol, nil]
13
12
  def element_method
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Require parent class
3
4
  require_relative 'base'
4
5
 
@@ -10,9 +11,7 @@ require_relative 'helpers/element_helper'
10
11
  module AutomationObject
11
12
  module BluePrint
12
13
  module Composite
13
- # Element composite class, passing method to adapter only
14
- # Hoping to improve code completion and standard interface where
15
- # classes use this as a template to add additional adapters
14
+ # Element composite class
16
15
  class Element < Base
17
16
  include ElementHelper
18
17
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Require parent class
3
4
  require_relative 'base'
4
5
 
@@ -10,9 +11,7 @@ require_relative 'helpers/multiple_elements_helper'
10
11
  module AutomationObject
11
12
  module BluePrint
12
13
  module Composite
13
- # ElementArray composite class, passing method to adapter only
14
- # Hoping to improve code completion and standard interface where
15
- # classes use this as a template to add additional adapters
14
+ # ElementArray composite class
16
15
  class ElementArray < Base
17
16
  include ElementHelper
18
17
  include MultipleElementsHelper
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Require parent class
3
4
  require_relative 'base'
4
5
 
@@ -10,9 +11,7 @@ require_relative 'helpers/multiple_elements_helper'
10
11
  module AutomationObject
11
12
  module BluePrint
12
13
  module Composite
13
- # ElementHash composite class, passing method to adapter only
14
- # Hoping to improve code completion and standard interface where
15
- # classes use this as a template to add additional adapters
14
+ # ElementHash composite class
16
15
  class ElementHash < Base
17
16
  include ElementHelper
18
17
  include MultipleElementsHelper
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Require parent class
4
+ module AutomationObject
5
+ module BluePrint
6
+ module Composite
7
+ # Screen composite class
8
+ module ContainerHelper
9
+ # @return [Array<AutomationObject::BluePrint::Composite::AutomaticModalChange>]
10
+ def automatic_modal_changes
11
+ adapter.automatic_modal_changes
12
+ end
13
+
14
+ # @return [Array<Symbol>]
15
+ def automatic_screen_changes
16
+ adapter.automatic_screen_changes
17
+ end
18
+
19
+ # @return [AutomationObject::BluePrint::Composite::Hook]
20
+ def load
21
+ adapter.load
22
+ end
23
+
24
+ # @return [Hash<AutomationObject::BluePrint::Composite::Element>]
25
+ def elements
26
+ adapter.elements
27
+ end
28
+
29
+ # @return [Hash<AutomationObject::BluePrint::Composite::ElementArray>]
30
+ def element_arrays
31
+ adapter.element_arrays
32
+ end
33
+
34
+ # @return [Hash<AutomationObject::BluePrint::Composite::ElementHash>]
35
+ def element_hashes
36
+ adapter.element_hashes
37
+ end
38
+
39
+ # Get possible changes
40
+ # @return [Array<Symbol>]
41
+ def changes
42
+ changes = []
43
+ elements.merge(element_arrays).merge(element_hashes).each_value do |element|
44
+ changes += element.changes
45
+ end
46
+
47
+ changes.uniq.compact
48
+ end
49
+
50
+ # @param name [Symbol] name of container you want to go to
51
+ # @return [Symbol, Symbol] name and type of element
52
+ def element_to_container(name)
53
+ elements.merge(element_arrays).merge(element_hashes).each do |element_name, element|
54
+ next unless element.changes.include?(name)
55
+
56
+ element_type = nil
57
+
58
+ case element
59
+ when Element
60
+ element_type = :elements
61
+ when ElementArray
62
+ element_type = :element_arrays
63
+ when ElementHash
64
+ element_type = :element_hashes
65
+ end
66
+
67
+ return element_name, element_type
68
+ end
69
+
70
+ [nil, nil]
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -1,9 +1,15 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module AutomationObject
3
4
  module BluePrint
4
5
  module Composite
5
6
  # Helper module for Element composite classes
6
7
  module ElementHelper
8
+ # @return [String, nil] text input for automatic screen/modal change if needed
9
+ def default_input
10
+ adapter.default_input
11
+ end
12
+
7
13
  # @return [Array<Symbol, String>, nil] params as an array for driver find_element args
8
14
  def selector_params
9
15
  adapter.selector_params
@@ -23,10 +29,33 @@ module AutomationObject
23
29
  adapter.method_hook?(name)
24
30
  end
25
31
 
26
- # @return [Hash<Hook>] array of Hook that are defined under the element
32
+ # @return [Hash<AutomationObject::BluePrint::Composite::Hook>] hash of Hook that are defined under the element
27
33
  def method_hooks
28
34
  adapter.method_hooks
29
35
  end
36
+
37
+ # Get possible changes
38
+ # @return [Array<Symbol>]
39
+ def changes
40
+ changes = []
41
+ method_hooks.each_value do |hook|
42
+ changes += hook.changes
43
+ end
44
+
45
+ changes.uniq.compact
46
+ end
47
+
48
+ # @param name [Symbol] name of container you want to go to
49
+ # @return [Symbol] method name
50
+ def method_to_container(name)
51
+ method_hooks.each do |method_name, hook|
52
+ next unless hook.changes.include?(name)
53
+
54
+ return method_name
55
+ end
56
+
57
+ nil
58
+ end
30
59
  end
31
60
  end
32
61
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module AutomationObject
3
4
  module BluePrint
4
5
  module Composite
@@ -1,28 +1,40 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Require parent class
3
4
  require_relative 'base'
4
5
 
5
6
  module AutomationObject
6
7
  module BluePrint
7
8
  module Composite
8
- # Hook composite class, passing method to adapter only
9
- # Hoping to improve code completion and standard interface where
10
- # classes use this as a template to add additional adapters
9
+ # Hook composite class
11
10
  class Hook < Base
12
- # @return [HookAction]
11
+ # @return [AutomationObject::BluePrint::Composite::HookAction]
13
12
  def before
14
13
  adapter.before
15
14
  end
16
15
 
17
- # @return [HookAction]
16
+ # @return [AutomationObject::BluePrint::Composite::HookAction]
18
17
  def after
19
18
  adapter.after
20
19
  end
21
20
 
22
- # @return [Array<HookElementRequirements>] array of element requirements
21
+ # @return [Array<AutomationObject::BluePrint::Composite::HookElementRequirements>] array of element requirements
23
22
  def live?
24
23
  adapter.live?
25
24
  end
25
+
26
+ # Get possible changes
27
+ # @return [Array<Symbol>]
28
+ def changes
29
+ [before.change_screen, before.new_screen,
30
+ after.change_screen, after.new_screen, before.show_modal, after.show_modal].uniq.compact
31
+ end
32
+
33
+ # @param name [Symbol]
34
+ # @return [Boolean]
35
+ def changes_to_container?(name)
36
+ changes.include?(name)
37
+ end
26
38
  end
27
39
  end
28
40
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Require parent class
3
4
  require_relative 'base'
4
5
 
@@ -7,9 +8,7 @@ require_relative 'hook_element_requirements'
7
8
  module AutomationObject
8
9
  module BluePrint
9
10
  module Composite
10
- # HookAction composite class, passing method to adapter only
11
- # Hoping to improve code completion and standard interface where
12
- # classes use this as a template to add additional adapters
11
+ # HookAction composite class
13
12
  class HookAction < Base
14
13
  # Get the order to run the hook in
15
14
  # @return [Array<Symbol>] list of hook methods to run in given order
@@ -75,7 +74,7 @@ module AutomationObject
75
74
  end
76
75
 
77
76
  # Custom method for array of children instead of Hash
78
- # @return [Array<HookElementRequirements>] array of wait for element children
77
+ # @return [Array<AutomationObject::BluePrint::Composite::HookElementRequirements>] array of wait for element children
79
78
  def wait_for_elements
80
79
  adapter.wait_for_elements
81
80
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Require parent class
3
4
  require_relative 'base'
4
5
 
@@ -7,9 +8,7 @@ require_relative 'element'
7
8
  module AutomationObject
8
9
  module BluePrint
9
10
  module Composite
10
- # HookElementRequirements composite class, passing method to adapter only
11
- # Hoping to improve code completion and standard interface where
12
- # classes use this as a template to add additional adapters
11
+ # HookElementRequirements composite class
13
12
  class HookElementRequirements < Base
14
13
  # Get the order to run the hook in
15
14
  # @return [Array<Symbol>] list of hook methods to run in given order
@@ -29,7 +28,7 @@ module AutomationObject
29
28
  adapter.element_name
30
29
  end
31
30
 
32
- # Convience for getting element blueprints
31
+ # Convenience for getting element blueprints
33
32
  # @return [AutomationObject::BluePrint::Composite::Element]
34
33
  def element_blueprints(composite_object = nil)
35
34
  adapter.element_blueprints(composite_object)
@@ -1,42 +1,45 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Require parent class
3
4
  require_relative 'base'
4
5
 
5
- require_relative 'automatic_onload_modal'
6
+ require_relative 'automatic_modal_change'
6
7
  require_relative 'hook'
7
8
 
8
9
  require_relative 'element'
9
10
  require_relative 'element_array'
10
11
  require_relative 'element_hash'
11
12
 
13
+ require_relative 'helpers/container_helper'
14
+
12
15
  module AutomationObject
13
16
  module BluePrint
14
17
  module Composite
15
- # Modal composite class, passing method to adapter only
16
- # Hoping to improve code completion and standard interface where
17
- # classes use this as a template to add additional adapters
18
+ # Modal composite class
18
19
  class Modal < Base
20
+ include ContainerHelper
21
+
19
22
  # @return [Array<Symbol>]
20
23
  def included_views
21
- adapter.screens
24
+ adapter.included_views
22
25
  end
23
26
 
24
- # @return [Hook]
27
+ # @return [AutomationObject::BluePrint::Composite::Hook]
25
28
  def load
26
29
  adapter.load
27
30
  end
28
31
 
29
- # @return [Hash<Element>]
32
+ # @return [Hash<AutomationObject::BluePrint::Composite::Element>]
30
33
  def elements
31
34
  adapter.elements
32
35
  end
33
36
 
34
- # @return [Hash<ElementArray>]
37
+ # @return [Hash<AutomationObject::BluePrint::Composite::ElementArray>]
35
38
  def element_arrays
36
39
  adapter.element_arrays
37
40
  end
38
41
 
39
- # @return [Hash<ElementHash>]
42
+ # @return [Hash<AutomationObject::BluePrint::Composite::ElementHash>]
40
43
  def element_hashes
41
44
  adapter.element_hashes
42
45
  end
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Require parent class
3
4
  require_relative 'base'
4
5
 
5
- require_relative 'automatic_onload_modal'
6
+ require_relative 'automatic_modal_change'
6
7
  require_relative 'hook'
7
8
 
8
9
  require_relative 'modal'
@@ -10,16 +11,18 @@ require_relative 'element'
10
11
  require_relative 'element_array'
11
12
  require_relative 'element_hash'
12
13
 
14
+ require_relative 'helpers/container_helper'
15
+
13
16
  module AutomationObject
14
17
  module BluePrint
15
18
  module Composite
16
- # Screen composite class, passing method to adapter only
17
- # Hoping to improve code completion and standard interface where
18
- # classes use this as a template to add additional adapters
19
+ # Screen composite class
19
20
  class Screen < Base
20
- # @return [Array<AutomaticOnloadModal>]
21
- def automatic_onload_modals
22
- adapter.automatic_onload_modals
21
+ include ContainerHelper
22
+
23
+ # @return [Array<AutomationObject::BluePrint::Composite::AutomaticModalChange>]
24
+ def automatic_modal_changes
25
+ adapter.automatic_modal_changes
23
26
  end
24
27
 
25
28
  # @return [Array<Symbol>]
@@ -27,37 +30,37 @@ module AutomationObject
27
30
  adapter.automatic_screen_changes
28
31
  end
29
32
 
30
- # @return [Hook]
33
+ # @return [AutomationObject::BluePrint::Composite::Hook]
31
34
  def accept
32
35
  adapter.accept
33
36
  end
34
37
 
35
- # @return [Hook]
38
+ # @return [AutomationObject::BluePrint::Composite::Hook]
36
39
  def dismiss
37
40
  adapter.dismiss
38
41
  end
39
42
 
40
- # @return [Hook]
43
+ # @return [AutomationObject::BluePrint::Composite::Hook]
41
44
  def load
42
45
  adapter.load
43
46
  end
44
47
 
45
- # @return [Hash<Modal>]
48
+ # @return [Hash<AutomationObject::BluePrint::Composite::Modal>]
46
49
  def modals
47
50
  adapter.modals
48
51
  end
49
52
 
50
- # @return [Hash<Element>]
53
+ # @return [Hash<AutomationObject::BluePrint::Composite::Element>]
51
54
  def elements
52
55
  adapter.elements
53
56
  end
54
57
 
55
- # @return [Hash<ElementArray>]
58
+ # @return [Hash<AutomationObject::BluePrint::Composite::ElementArray>]
56
59
  def element_arrays
57
60
  adapter.element_arrays
58
61
  end
59
62
 
60
- # @return [Hash<ElementHash>]
63
+ # @return [Hash<AutomationObject::BluePrint::Composite::ElementHash>]
61
64
  def element_hashes
62
65
  adapter.element_hashes
63
66
  end