automation_object 0.5.0 → 0.5.1
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/automation_object.rb +22 -11
- data/lib/automation_object/blue_print.rb +13 -12
- data/lib/automation_object/blue_print/composite/automatic_onload_modal.rb +9 -8
- data/lib/automation_object/blue_print/composite/base.rb +5 -4
- data/lib/automation_object/blue_print/composite/custom_method.rb +8 -7
- data/lib/automation_object/blue_print/composite/element.rb +6 -5
- data/lib/automation_object/blue_print/composite/element_array.rb +6 -5
- data/lib/automation_object/blue_print/composite/element_hash.rb +7 -6
- data/lib/automation_object/blue_print/composite/helpers/element_helper.rb +7 -7
- data/lib/automation_object/blue_print/composite/helpers/multiple_elements_helper.rb +5 -4
- data/lib/automation_object/blue_print/composite/hook.rb +9 -11
- data/lib/automation_object/blue_print/composite/hook_action.rb +25 -24
- data/lib/automation_object/blue_print/composite/hook_element_requirements.rb +14 -13
- data/lib/automation_object/blue_print/composite/modal.rb +11 -21
- data/lib/automation_object/blue_print/composite/screen.rb +22 -16
- data/lib/automation_object/blue_print/composite/top.rb +13 -12
- data/lib/automation_object/blue_print/composite/view.rb +27 -16
- data/lib/automation_object/blue_print/hash_adapter.rb +15 -11
- data/lib/automation_object/blue_print/hash_adapter/automatic_onload_modal.rb +12 -11
- data/lib/automation_object/blue_print/hash_adapter/composite.rb +28 -25
- data/lib/automation_object/blue_print/hash_adapter/custom_method.rb +11 -10
- data/lib/automation_object/blue_print/hash_adapter/element.rb +10 -9
- data/lib/automation_object/blue_print/hash_adapter/element_array.rb +10 -9
- data/lib/automation_object/blue_print/hash_adapter/element_hash.rb +11 -10
- data/lib/automation_object/blue_print/hash_adapter/helpers/element_helper.rb +20 -25
- data/lib/automation_object/blue_print/hash_adapter/helpers/multiple_elements_helper.rb +15 -14
- data/lib/automation_object/blue_print/hash_adapter/helpers/validation_error.rb +9 -8
- data/lib/automation_object/blue_print/hash_adapter/helpers/validation_helper.rb +19 -24
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate.rb +8 -5
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_allowed_keys.rb +7 -8
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_element_presence_of.rb +28 -23
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_instance_of.rb +12 -13
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_modal_presence_of.rb +27 -23
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_presence_of.rb +9 -8
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_screen_presence_of.rb +27 -23
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_view_presence_of.rb +25 -21
- data/lib/automation_object/blue_print/hash_adapter/hook.rb +14 -11
- data/lib/automation_object/blue_print/hash_adapter/hook_action.rb +45 -47
- data/lib/automation_object/blue_print/hash_adapter/hook_element_requirements.rb +24 -28
- data/lib/automation_object/blue_print/hash_adapter/modal.rb +14 -13
- data/lib/automation_object/blue_print/hash_adapter/screen.rb +23 -22
- data/lib/automation_object/blue_print/hash_adapter/top.rb +16 -15
- data/lib/automation_object/blue_print/hash_adapter/view.rb +58 -4
- data/lib/automation_object/blue_print/yaml_adapter.rb +33 -34
- data/lib/automation_object/driver.rb +15 -13
- data/lib/automation_object/driver/appium_adapter/driver.rb +47 -46
- data/lib/automation_object/driver/appium_adapter/element.rb +29 -96
- data/lib/automation_object/driver/base.rb +4 -2
- data/lib/automation_object/driver/common_selenium/driver.rb +60 -0
- data/lib/automation_object/driver/common_selenium/element.rb +107 -0
- data/lib/automation_object/driver/common_selenium/element_geometry.rb +86 -0
- data/lib/automation_object/driver/driver.rb +60 -30
- data/lib/automation_object/driver/element.rb +70 -15
- data/lib/automation_object/driver/nokogiri_adapter/driver.rb +88 -34
- data/lib/automation_object/driver/nokogiri_adapter/element.rb +94 -16
- data/lib/automation_object/driver/nokogiri_adapter/error.rb +29 -8
- data/lib/automation_object/driver/nokogiri_adapter/{backup/form.rb → form.rb} +19 -6
- data/lib/automation_object/driver/nokogiri_adapter/request.rb +17 -0
- data/lib/automation_object/driver/nokogiri_adapter/session.rb +94 -0
- data/lib/automation_object/driver/nokogiri_adapter/window.rb +86 -0
- data/lib/automation_object/driver/selenium_adapter/driver.rb +36 -45
- data/lib/automation_object/driver/selenium_adapter/element.rb +15 -85
- data/lib/automation_object/dsl.rb +11 -28
- data/lib/automation_object/dsl/_base.rb +70 -0
- data/lib/automation_object/dsl/_proxy.rb +24 -0
- data/lib/automation_object/dsl/element.rb +34 -0
- data/lib/automation_object/dsl/element_array.rb +34 -0
- data/lib/automation_object/dsl/element_hash.rb +34 -0
- data/lib/automation_object/dsl/modal.rb +43 -0
- data/lib/automation_object/dsl/screen.rb +45 -0
- data/lib/automation_object/dsl/top.rb +25 -0
- data/lib/automation_object/framework.rb +28 -38
- data/lib/automation_object/helpers/composite.rb +30 -27
- data/lib/automation_object/helpers/composite_hook.rb +16 -15
- data/lib/automation_object/{blue_print/helpers/file_helper.rb → helpers/file.rb} +12 -12
- data/lib/automation_object/helpers/hash.rb +6 -5
- data/lib/automation_object/helpers/kernel.rb +11 -0
- data/lib/automation_object/helpers/{reflection_helper.rb → reflection.rb} +9 -8
- data/lib/automation_object/helpers/string.rb +25 -15
- data/lib/automation_object/{proxies → proxy}/mutex_proxy.rb +18 -21
- data/lib/automation_object/proxy/proxy.rb +23 -0
- data/lib/automation_object/proxy/throttle_proxy.rb +52 -0
- data/lib/automation_object/state.rb +11 -29
- data/lib/automation_object/state/{blue_print_adapter/composite.rb → composite/_base.rb} +35 -25
- data/lib/automation_object/state/{blue_print_adapter/helpers/element_helper.rb → composite/_common_element.rb} +11 -11
- data/lib/automation_object/state/composite/element.rb +22 -0
- data/lib/automation_object/state/composite/element_array.rb +27 -0
- data/lib/automation_object/state/composite/element_hash.rb +33 -0
- data/lib/automation_object/state/composite/element_proxy.rb +33 -0
- data/lib/automation_object/state/composite/helpers/window.rb +61 -0
- data/lib/automation_object/state/composite/helpers/window_manager.rb +60 -0
- data/lib/automation_object/state/composite/hook.rb +56 -0
- data/lib/automation_object/state/{blue_print_adapter → composite}/hook_action.rb +10 -8
- data/lib/automation_object/state/composite/hook_actions/action_loop.rb +36 -0
- data/lib/automation_object/state/{blue_print_adapter → composite}/hook_actions/change_screen.rb +7 -5
- data/lib/automation_object/state/{blue_print_adapter → composite}/hook_actions/change_to_previous_screen.rb +7 -5
- data/lib/automation_object/state/composite/hook_actions/close_modal.rb +29 -0
- data/lib/automation_object/state/composite/hook_actions/close_screen.rb +19 -0
- data/lib/automation_object/state/composite/hook_actions/element_requirement.rb +32 -0
- data/lib/automation_object/state/composite/hook_actions/new_screen.rb +35 -0
- data/lib/automation_object/state/{blue_print_adapter → composite}/hook_actions/possible_screen_changes.rb +8 -7
- data/lib/automation_object/state/composite/hook_actions/reset_screen.rb +14 -0
- data/lib/automation_object/state/{blue_print_adapter → composite}/hook_actions/show_modal.rb +7 -5
- data/lib/automation_object/state/{blue_print_adapter → composite}/hook_actions/sleep.rb +4 -2
- data/lib/automation_object/state/{blue_print_adapter → composite}/hook_actions/wait_for_elements.rb +7 -5
- data/lib/automation_object/state/composite/modal.rb +45 -0
- data/lib/automation_object/state/composite/screen.rb +58 -0
- data/lib/automation_object/state/composite/top.rb +51 -0
- data/lib/automation_object/state/error.rb +45 -6
- data/lib/automation_object/state/session.rb +25 -23
- data/lib/automation_object/step_definitions.rb +5 -3
- data/lib/automation_object/step_definitions/element.rb +77 -0
- data/lib/automation_object/step_definitions/element_array.rb +135 -0
- data/lib/automation_object/step_definitions/element_hash.rb +126 -0
- data/lib/automation_object/step_definitions/screen.rb +62 -0
- data/lib/automation_object/step_definitions/{cache.rb → support/cache.rb} +8 -6
- data/lib/automation_object/step_definitions/support/element_array.rb +40 -0
- data/lib/automation_object/step_definitions/support/element_hash.rb +41 -0
- data/lib/automation_object/step_definitions/{parse.rb → support/parse.rb} +8 -6
- data/lib/automation_object/version.rb +2 -1
- metadata +203 -103
- data/lib/automation_object/driver/helpers/selenium_driver_helper.rb +0 -41
- data/lib/automation_object/driver/helpers/selenium_element_helper.rb +0 -138
- data/lib/automation_object/driver/nokogiri_adapter/backup/driver.rb +0 -83
- data/lib/automation_object/driver/nokogiri_adapter/backup/element.rb +0 -66
- data/lib/automation_object/driver/nokogiri_adapter/backup/helpers/driver_element_helper.rb +0 -52
- data/lib/automation_object/driver/nokogiri_adapter/backup/session.rb +0 -115
- data/lib/automation_object/dsl/blue_print_adapter.rb +0 -16
- data/lib/automation_object/dsl/blue_print_adapter/composite.rb +0 -54
- data/lib/automation_object/dsl/blue_print_adapter/element.rb +0 -14
- data/lib/automation_object/dsl/blue_print_adapter/element_array.rb +0 -14
- data/lib/automation_object/dsl/blue_print_adapter/element_hash.rb +0 -14
- data/lib/automation_object/dsl/blue_print_adapter/modal.rb +0 -23
- data/lib/automation_object/dsl/blue_print_adapter/screen.rb +0 -26
- data/lib/automation_object/dsl/blue_print_adapter/top.rb +0 -19
- data/lib/automation_object/dsl/models.rb +0 -18
- data/lib/automation_object/dsl/proxies/element.rb +0 -16
- data/lib/automation_object/dsl/proxies/element_array.rb +0 -16
- data/lib/automation_object/dsl/proxies/element_hash.rb +0 -16
- data/lib/automation_object/dsl/proxies/helpers/composite_helper.rb +0 -74
- data/lib/automation_object/dsl/proxies/modal.rb +0 -17
- data/lib/automation_object/dsl/proxies/screen.rb +0 -17
- data/lib/automation_object/dsl/proxies/top.rb +0 -17
- data/lib/automation_object/proxies/proxy.rb +0 -20
- data/lib/automation_object/proxies/throttle_proxy.rb +0 -57
- data/lib/automation_object/state/blue_print_adapter.rb +0 -16
- data/lib/automation_object/state/blue_print_adapter/element.rb +0 -20
- data/lib/automation_object/state/blue_print_adapter/element_array.rb +0 -25
- data/lib/automation_object/state/blue_print_adapter/element_hash.rb +0 -31
- data/lib/automation_object/state/blue_print_adapter/element_proxy.rb +0 -28
- data/lib/automation_object/state/blue_print_adapter/helpers/screen_manager.rb +0 -137
- data/lib/automation_object/state/blue_print_adapter/helpers/window.rb +0 -39
- data/lib/automation_object/state/blue_print_adapter/hook.rb +0 -56
- data/lib/automation_object/state/blue_print_adapter/hook_actions/action_loop.rb +0 -35
- data/lib/automation_object/state/blue_print_adapter/hook_actions/close_modal.rb +0 -31
- data/lib/automation_object/state/blue_print_adapter/hook_actions/close_screen.rb +0 -19
- data/lib/automation_object/state/blue_print_adapter/hook_actions/element_requirement.rb +0 -34
- data/lib/automation_object/state/blue_print_adapter/hook_actions/new_screen.rb +0 -37
- data/lib/automation_object/state/blue_print_adapter/hook_actions/reset_screen.rb +0 -18
- data/lib/automation_object/state/blue_print_adapter/modal.rb +0 -26
- data/lib/automation_object/state/blue_print_adapter/screen.rb +0 -32
- data/lib/automation_object/state/blue_print_adapter/top.rb +0 -45
- data/lib/automation_object/step_definitions/action.rb +0 -21
- data/lib/automation_object/step_definitions/element/actions.rb +0 -87
- data/lib/automation_object/step_definitions/element/regex.rb +0 -24
- data/lib/automation_object/step_definitions/element/steps.rb +0 -67
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Require parent class
|
2
3
|
require_relative 'base'
|
3
4
|
|
4
5
|
require_relative 'element'
|
@@ -6,34 +7,34 @@ require_relative 'element'
|
|
6
7
|
module AutomationObject
|
7
8
|
module BluePrint
|
8
9
|
module Composite
|
9
|
-
#HookElementRequirements composite class, passing method to adapter only
|
10
|
-
#Hoping to improve code completion and standard interface where
|
11
|
-
#classes use this as a template to add additional adapters
|
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
|
12
13
|
class HookElementRequirements < Base
|
13
|
-
#Get the order to run the hook in
|
14
|
+
# Get the order to run the hook in
|
14
15
|
# @return [Array<Symbol>] list of hook methods to run in given order
|
15
16
|
def hook_order
|
16
|
-
|
17
|
+
adapter.hook_order
|
17
18
|
end
|
18
19
|
|
19
|
-
#Get element requirement
|
20
|
+
# Get element requirement
|
20
21
|
# @param name [Symbol] name of requested requirement
|
21
22
|
def requirement(name)
|
22
|
-
|
23
|
+
adapter.requirement(name)
|
23
24
|
end
|
24
25
|
|
25
|
-
#Get name of the element
|
26
|
+
# Get name of the element
|
26
27
|
# @return [Symbol] name of element
|
27
28
|
def element_name
|
28
|
-
|
29
|
+
adapter.element_name
|
29
30
|
end
|
30
31
|
|
31
|
-
#Convience for getting element blueprints
|
32
|
+
# Convience for getting element blueprints
|
32
33
|
# @return [AutomationObject::BluePrint::Composite::Element]
|
33
34
|
def element_blueprints(composite_object = nil)
|
34
|
-
|
35
|
+
adapter.element_blueprints(composite_object)
|
35
36
|
end
|
36
37
|
end
|
37
38
|
end
|
38
39
|
end
|
39
|
-
end
|
40
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Require parent class
|
2
3
|
require_relative 'base'
|
3
4
|
|
4
5
|
require_relative 'automatic_onload_modal'
|
5
6
|
require_relative 'hook'
|
6
7
|
|
7
|
-
require_relative 'modal'
|
8
8
|
require_relative 'element'
|
9
9
|
require_relative 'element_array'
|
10
10
|
require_relative 'element_hash'
|
@@ -12,45 +12,35 @@ require_relative 'element_hash'
|
|
12
12
|
module AutomationObject
|
13
13
|
module BluePrint
|
14
14
|
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
|
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
18
|
class Modal < Base
|
19
19
|
# @return [Array<Symbol>]
|
20
20
|
def included_views
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
# @return [Array<AutomaticOnloadModal>]
|
25
|
-
def automatic_onload_modals
|
26
|
-
self.adapter.automatic_onload_modals
|
27
|
-
end
|
28
|
-
|
29
|
-
# @return [Array<Symbol>]
|
30
|
-
def automatic_screen_changes
|
31
|
-
self.adapter.automatic_screen_changes
|
21
|
+
adapter.screens
|
32
22
|
end
|
33
23
|
|
34
24
|
# @return [Hook]
|
35
25
|
def load
|
36
|
-
|
26
|
+
adapter.load
|
37
27
|
end
|
38
28
|
|
39
29
|
# @return [Hash<Element>]
|
40
30
|
def elements
|
41
|
-
|
31
|
+
adapter.elements
|
42
32
|
end
|
43
33
|
|
44
34
|
# @return [Hash<ElementArray>]
|
45
35
|
def element_arrays
|
46
|
-
|
36
|
+
adapter.element_arrays
|
47
37
|
end
|
48
38
|
|
49
39
|
# @return [Hash<ElementHash>]
|
50
40
|
def element_hashes
|
51
|
-
|
41
|
+
adapter.element_hashes
|
52
42
|
end
|
53
43
|
end
|
54
44
|
end
|
55
45
|
end
|
56
|
-
end
|
46
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Require parent class
|
2
3
|
require_relative 'base'
|
3
4
|
|
4
5
|
require_relative 'automatic_onload_modal'
|
@@ -12,48 +13,53 @@ require_relative 'element_hash'
|
|
12
13
|
module AutomationObject
|
13
14
|
module BluePrint
|
14
15
|
module Composite
|
15
|
-
#Screen 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
|
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
|
18
19
|
class Screen < Base
|
19
|
-
# @return [Array<Symbol>]
|
20
|
-
def included_views
|
21
|
-
self.adapter.screens
|
22
|
-
end
|
23
|
-
|
24
20
|
# @return [Array<AutomaticOnloadModal>]
|
25
21
|
def automatic_onload_modals
|
26
|
-
|
22
|
+
adapter.automatic_onload_modals
|
27
23
|
end
|
28
24
|
|
29
25
|
# @return [Array<Symbol>]
|
30
26
|
def automatic_screen_changes
|
31
|
-
|
27
|
+
adapter.automatic_screen_changes
|
28
|
+
end
|
29
|
+
|
30
|
+
# @return [Hook]
|
31
|
+
def accept
|
32
|
+
adapter.accept
|
33
|
+
end
|
34
|
+
|
35
|
+
# @return [Hook]
|
36
|
+
def dismiss
|
37
|
+
adapter.dismiss
|
32
38
|
end
|
33
39
|
|
34
40
|
# @return [Hook]
|
35
41
|
def load
|
36
|
-
|
42
|
+
adapter.load
|
37
43
|
end
|
38
44
|
|
39
45
|
# @return [Hash<Modal>]
|
40
46
|
def modals
|
41
|
-
|
47
|
+
adapter.modals
|
42
48
|
end
|
43
49
|
|
44
50
|
# @return [Hash<Element>]
|
45
51
|
def elements
|
46
|
-
|
52
|
+
adapter.elements
|
47
53
|
end
|
48
54
|
|
49
55
|
# @return [Hash<ElementArray>]
|
50
56
|
def element_arrays
|
51
|
-
|
57
|
+
adapter.element_arrays
|
52
58
|
end
|
53
59
|
|
54
60
|
# @return [Hash<ElementHash>]
|
55
61
|
def element_hashes
|
56
|
-
|
62
|
+
adapter.element_hashes
|
57
63
|
end
|
58
64
|
end
|
59
65
|
end
|
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Require parent class
|
2
3
|
require_relative 'base'
|
3
4
|
|
4
5
|
require_relative 'screen'
|
@@ -7,45 +8,45 @@ require_relative 'view'
|
|
7
8
|
module AutomationObject
|
8
9
|
module BluePrint
|
9
10
|
module Composite
|
10
|
-
#Top 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
|
+
# Top composite class, passing method to adapter only
|
12
|
+
# Hoping to improve code completion and standard interface where
|
13
|
+
# classes use this as a template to add additional adapters
|
13
14
|
class Top < Base
|
14
15
|
# @return [Hash<Screen>]
|
15
16
|
def screens
|
16
|
-
|
17
|
+
adapter.screens
|
17
18
|
end
|
18
19
|
|
19
20
|
# @return [Hash<View>]
|
20
21
|
def views
|
21
|
-
|
22
|
+
adapter.views
|
22
23
|
end
|
23
24
|
|
24
25
|
# @return [String, nil] base url to navigate to upon framework creation
|
25
26
|
def base_url
|
26
|
-
|
27
|
+
adapter.base_url
|
27
28
|
end
|
28
29
|
|
29
30
|
# @return [Symbol, nil] default screen to be set when framework is created
|
30
31
|
def default_screen
|
31
|
-
|
32
|
+
adapter.default_screen
|
32
33
|
end
|
33
34
|
|
34
35
|
# @return [Numeric] sleep when transitioning screens
|
35
36
|
def screen_transition_sleep
|
36
|
-
|
37
|
+
adapter.screen_transition_sleep
|
37
38
|
end
|
38
39
|
|
39
40
|
# @return [Hash] driver methods to throttle
|
40
41
|
def throttle_driver_methods
|
41
|
-
|
42
|
+
adapter.throttle_driver_methods
|
42
43
|
end
|
43
44
|
|
44
45
|
# @return [Hash] element methods to throttle
|
45
46
|
def throttle_element_methods
|
46
|
-
|
47
|
+
adapter.throttle_element_methods
|
47
48
|
end
|
48
49
|
end
|
49
50
|
end
|
50
51
|
end
|
51
|
-
end
|
52
|
+
end
|
@@ -1,48 +1,59 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Require parent class
|
2
3
|
require_relative 'base'
|
3
4
|
|
4
5
|
module AutomationObject
|
5
6
|
module BluePrint
|
6
7
|
module Composite
|
7
|
-
#View composite class, passing method to adapter only
|
8
|
-
#Hoping to improve code completion and standard interface where
|
9
|
-
#classes use this as a template to add additional adapters
|
8
|
+
# View 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
|
10
11
|
class View < Base
|
12
|
+
# @return [Hook]
|
13
|
+
def load
|
14
|
+
adapter.load
|
15
|
+
end
|
16
|
+
|
17
|
+
# @return [Hook]
|
18
|
+
def accept
|
19
|
+
adapter.accept
|
20
|
+
end
|
21
|
+
|
22
|
+
# @return [Hook]
|
23
|
+
def dismiss
|
24
|
+
adapter.dismiss
|
25
|
+
end
|
26
|
+
|
11
27
|
# @return [Array<AutomaticOnloadModal>]
|
12
28
|
def automatic_onload_modals
|
13
|
-
|
29
|
+
adapter.automatic_onload_modals
|
14
30
|
end
|
15
31
|
|
16
32
|
# @return [Array<Symbol>]
|
17
33
|
def automatic_screen_changes
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
# @return [Hook]
|
22
|
-
def load
|
23
|
-
self.adapter.load
|
34
|
+
adapter.automatic_screen_changes
|
24
35
|
end
|
25
36
|
|
26
37
|
# @return [Hash<Modal>]
|
27
38
|
def modals
|
28
|
-
|
39
|
+
adapter.modals
|
29
40
|
end
|
30
41
|
|
31
42
|
# @return [Hash<Element>]
|
32
43
|
def elements
|
33
|
-
|
44
|
+
adapter.elements
|
34
45
|
end
|
35
46
|
|
36
47
|
# @return [Hash<ElementArray>]
|
37
48
|
def element_arrays
|
38
|
-
|
49
|
+
adapter.element_arrays
|
39
50
|
end
|
40
51
|
|
41
52
|
# @return [Hash<ElementHash>]
|
42
53
|
def element_hashes
|
43
|
-
|
54
|
+
adapter.element_hashes
|
44
55
|
end
|
45
56
|
end
|
46
57
|
end
|
47
58
|
end
|
48
|
-
end
|
59
|
+
end
|
@@ -1,17 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require_relative 'composite/top'
|
2
3
|
require_relative 'hash_adapter/top'
|
3
4
|
|
4
|
-
module AutomationObject
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
# @return [AutomationObject::BluePrint::Composite::Top] Composite BluePrint Object
|
10
|
-
def build(hash = {})
|
11
|
-
hash.symbolize_keys_deep!
|
5
|
+
module AutomationObject
|
6
|
+
module BluePrint
|
7
|
+
# BluePrint Hash Adapter
|
8
|
+
module HashAdapter
|
9
|
+
module_function
|
12
10
|
|
13
|
-
|
14
|
-
AutomationObject::BluePrint::Composite::Top
|
11
|
+
# @param [Hash] hash that includes all the information needed to create a BluePrint
|
12
|
+
# @return [AutomationObject::BluePrint::Composite::Top] Composite BluePrint Object
|
13
|
+
def build(hash = {})
|
14
|
+
hash.symbolize_keys_deep!
|
15
|
+
|
16
|
+
top_hash = AutomationObject::BluePrint::HashAdapter::Top.new(hash)
|
17
|
+
AutomationObject::BluePrint::Composite::Top.new(top_hash)
|
18
|
+
end
|
15
19
|
end
|
16
20
|
end
|
17
|
-
end
|
21
|
+
end
|
@@ -1,35 +1,36 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Require parent class
|
2
3
|
require_relative 'composite'
|
3
4
|
|
4
5
|
module AutomationObject
|
5
6
|
module BluePrint
|
6
7
|
module HashAdapter
|
7
|
-
#Automatic Onload Modal Composite
|
8
|
+
# Automatic Onload Modal Composite
|
8
9
|
class AutomaticOnloadModal < Composite
|
9
|
-
#Validations
|
10
|
+
# Validations
|
10
11
|
validates :modal_name, instance_of: [String, Symbol], modal_presence_of: true, presence_of: true
|
11
12
|
validates :number_of_checks, instance_of: Numeric
|
12
13
|
validates :close, instance_of: TrueClass
|
13
14
|
|
14
15
|
def modal_name
|
15
|
-
modal_name =
|
16
|
+
modal_name = hash[:modal_name]
|
16
17
|
|
17
18
|
case modal_name
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
when Symbol, String
|
20
|
+
return modal_name.to_sym
|
21
|
+
else
|
22
|
+
return nil
|
22
23
|
end
|
23
24
|
end
|
24
25
|
|
25
26
|
def number_of_checks
|
26
|
-
|
27
|
+
hash[:number_of_checks] ||= 1
|
27
28
|
end
|
28
29
|
|
29
30
|
def close
|
30
|
-
|
31
|
+
hash[:close] ||= false
|
31
32
|
end
|
32
33
|
end
|
33
34
|
end
|
34
35
|
end
|
35
|
-
end
|
36
|
+
end
|
@@ -1,4 +1,6 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require_relative '../../helpers/composite'
|
3
|
+
require_relative '../../helpers/string'
|
2
4
|
|
3
5
|
require_relative 'helpers/validation_helper'
|
4
6
|
require_relative 'helpers/validation_error'
|
@@ -6,6 +8,7 @@ require_relative 'helpers/validation_error'
|
|
6
8
|
module AutomationObject
|
7
9
|
module BluePrint
|
8
10
|
module HashAdapter
|
11
|
+
# Base composite for blue print hash adapter
|
9
12
|
class Composite < AutomationObject::Composite
|
10
13
|
include ValidationHelper
|
11
14
|
|
@@ -16,28 +19,26 @@ module AutomationObject
|
|
16
19
|
# @param parent [Object, nil] parent composite object
|
17
20
|
# @param location [String] string location for error/debugging purposes
|
18
21
|
def initialize(hash = {}, name = :top, parent = nil, location = 'top')
|
19
|
-
#Add hash before calling super
|
20
|
-
self.hash =
|
22
|
+
# Add hash before calling super
|
23
|
+
self.hash = hash.is_a?(Hash) ? hash : {}
|
21
24
|
self.hash.symbolize_keys_deep!
|
22
25
|
|
23
26
|
super(name, parent, location)
|
24
27
|
|
25
|
-
#Validate using ValidationHelper
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
end
|
32
|
-
end
|
28
|
+
# Validate using ValidationHelper
|
29
|
+
return if valid?
|
30
|
+
|
31
|
+
raise ValidationError, errors.uniq.reverse unless self.parent
|
32
|
+
|
33
|
+
self.parent.add_errors(errors)
|
33
34
|
end
|
34
35
|
|
35
36
|
# Overriding base get_child method
|
36
37
|
# @param name [Symbol] name of child
|
37
38
|
# @param options [Hash] options for child
|
38
39
|
def get_child(name, options)
|
39
|
-
child =
|
40
|
-
child_location =
|
40
|
+
child = hash[name].is_a?(Hash) ? hash[name] : {}
|
41
|
+
child_location = location + "[#{name}]"
|
41
42
|
|
42
43
|
create_composite(options, child, name, child_location)
|
43
44
|
end
|
@@ -47,42 +48,44 @@ module AutomationObject
|
|
47
48
|
# @param options [Hash] options for child
|
48
49
|
# @return children [Hash] return children and names
|
49
50
|
def get_children(name, options)
|
50
|
-
children =
|
51
|
-
children =
|
51
|
+
children = hash[name]
|
52
|
+
children = children.is_a?(Hash) ? children : {}
|
52
53
|
|
53
|
-
|
54
|
+
create_hash_children(children, options)
|
54
55
|
end
|
55
56
|
|
56
57
|
# @param name [Symbol] name of child
|
57
58
|
# @param children [Array] hash of children
|
58
59
|
# @param args [Hash] arguments for adding children
|
59
60
|
def create_array_children(name, children, args)
|
60
|
-
composite_children = children.map.with_index
|
61
|
-
location =
|
61
|
+
composite_children = children.map.with_index do |child, index|
|
62
|
+
location = args[:location] ? args[:location] : self.location
|
62
63
|
child_location = location + "[#{index}]"
|
63
64
|
|
64
65
|
create_composite(args, child, "#{name}[#{index}]", child_location)
|
65
|
-
|
66
|
+
end
|
66
67
|
|
67
|
-
|
68
|
+
composite_children
|
68
69
|
end
|
69
70
|
|
70
71
|
# @param children [Hash] hash of children
|
71
72
|
# @param args [Hash] arguments for adding children
|
72
73
|
def create_hash_children(children, args)
|
73
|
-
composite_children = children.
|
74
|
-
child_location =
|
74
|
+
composite_children = children.each_with_object({}) do |(key, value), hash|
|
75
|
+
child_location = location + "[#{key}]"
|
75
76
|
|
76
77
|
hash[key] = create_composite(args, value, key, child_location)
|
77
78
|
hash
|
78
|
-
|
79
|
+
end
|
79
80
|
|
80
|
-
|
81
|
+
composite_children
|
81
82
|
end
|
82
83
|
|
83
84
|
def create_composite(args, child, name, location)
|
84
|
-
#Get the Composite Class that corresponds with the HashAdapter Class
|
85
|
+
# Get the Composite Class that corresponds with the HashAdapter Class
|
85
86
|
class_name = args[:interface].name.split('::').last
|
87
|
+
|
88
|
+
require_relative "../composite/#{class_name.to_underscore}"
|
86
89
|
composite_class = AutomationObject::BluePrint::Composite.const_get(class_name)
|
87
90
|
|
88
91
|
composite_class.new(args[:interface].new(child, name, self, location))
|
@@ -90,4 +93,4 @@ module AutomationObject
|
|
90
93
|
end
|
91
94
|
end
|
92
95
|
end
|
93
|
-
end
|
96
|
+
end
|