automation_object 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|