Module: AutomationObject::BluePrint

Defined in:
lib/automation_object/blue_print.rb,
lib/automation_object/blue_print/hash_adapter.rb,
lib/automation_object/blue_print/yaml_adapter.rb,
lib/automation_object/blue_print/composite/top.rb,
lib/automation_object/blue_print/composite/base.rb,
lib/automation_object/blue_print/composite/hook.rb,
lib/automation_object/blue_print/composite/view.rb,
lib/automation_object/blue_print/composite/modal.rb,
lib/automation_object/blue_print/composite/screen.rb,
lib/automation_object/blue_print/hash_adapter/top.rb,
lib/automation_object/blue_print/composite/element.rb,
lib/automation_object/blue_print/hash_adapter/hook.rb,
lib/automation_object/blue_print/hash_adapter/view.rb,
lib/automation_object/blue_print/hash_adapter/modal.rb,
lib/automation_object/blue_print/hash_adapter/screen.rb,
lib/automation_object/blue_print/page_object_adapter.rb,
lib/automation_object/blue_print/hash_adapter/element.rb,
lib/automation_object/blue_print/composite/hook_action.rb,
lib/automation_object/blue_print/composite/element_hash.rb,
lib/automation_object/blue_print/hash_adapter/composite.rb,
lib/automation_object/blue_print/composite/custom_method.rb,
lib/automation_object/blue_print/composite/element_array.rb,
lib/automation_object/blue_print/page_object_adapter/top.rb,
lib/automation_object/blue_print/hash_adapter/hook_action.rb,
lib/automation_object/blue_print/page_object_adapter/hook.rb,
lib/automation_object/blue_print/hash_adapter/element_hash.rb,
lib/automation_object/blue_print/page_object_adapter/modal.rb,
lib/automation_object/blue_print/hash_adapter/custom_method.rb,
lib/automation_object/blue_print/hash_adapter/element_array.rb,
lib/automation_object/blue_print/page_object_adapter/screen.rb,
lib/automation_object/blue_print/page_object_adapter/element.rb,
lib/automation_object/blue_print/page_object_adapter/composite.rb,
lib/automation_object/blue_print/page_object_adapter/hook_action.rb,
lib/automation_object/blue_print/composite/automatic_modal_change.rb,
lib/automation_object/blue_print/composite/helpers/element_helper.rb,
lib/automation_object/blue_print/page_object_adapter/element_hash.rb,
lib/automation_object/blue_print/page_object_adapter/custom_method.rb,
lib/automation_object/blue_print/page_object_adapter/element_array.rb,
lib/automation_object/blue_print/composite/helpers/container_helper.rb,
lib/automation_object/blue_print/composite/hook_element_requirements.rb,
lib/automation_object/blue_print/hash_adapter/automatic_modal_change.rb,
lib/automation_object/blue_print/hash_adapter/helpers/element_helper.rb,
lib/automation_object/blue_print/hash_adapter/helpers/validation_error.rb,
lib/automation_object/blue_print/hash_adapter/helpers/validation_helper.rb,
lib/automation_object/blue_print/hash_adapter/hook_element_requirements.rb,
lib/automation_object/blue_print/hash_adapter/helpers/validators/validate.rb,
lib/automation_object/blue_print/composite/helpers/multiple_elements_helper.rb,
lib/automation_object/blue_print/page_object_adapter/automatic_modal_change.rb,
lib/automation_object/blue_print/page_object_adapter/helpers/element_helper.rb,
lib/automation_object/blue_print/hash_adapter/helpers/multiple_elements_helper.rb,
lib/automation_object/blue_print/page_object_adapter/hook_element_requirements.rb,
lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_instance_of.rb,
lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_presence_of.rb,
lib/automation_object/blue_print/page_object_adapter/helpers/multiple_elements_helper.rb,
lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_allowed_keys.rb,
lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_view_presence_of.rb,
lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_modal_presence_of.rb,
lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_screen_presence_of.rb,
lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_element_presence_of.rb

Overview

BluePrint Port, encapsulation of code required to parse and build composite data structure representing UI Provides for loading Hash/YAML, validates the resulting structure (throws errors), and a common interface for the rest of the code base to use.

Defined Under Namespace

Modules: Composite, HashAdapter, PageObjectAdapter, YamlAdapter

Class Method Summary collapse

Class Method Details

.adapterAutomationObject::BluePrint::YamlAdapter, ...

Get method for BluePrint adapter const for composite BluePrint build Each adapter will implement common BluePrint interface



17
18
19
20
21
# File 'lib/automation_object/blue_print.rb', line 17

def adapter
  return @adapter if @adapter
  self.adapter = :hash
  @adapter
end

.adapter=(adapter_name) ⇒ Object

Sets adapter const will append _adapter if needed

Parameters:

  • adapter_name (String)

    name of adapter wanted for composite creation



25
26
27
28
29
30
31
# File 'lib/automation_object/blue_print.rb', line 25

def adapter=(adapter_name)
  adapter_name = adapter_name.to_s
  adapter_name << '_adapter' unless adapter_name =~ /_adapter$/
  adapter_const = adapter_name.pascalize

  @adapter = AutomationObject::BluePrint.const_get(adapter_const.to_s)
end

.create(blueprint_arg) ⇒ AutomationObject::BluePrint::Composite::Top

Adapters use the composite AutomationObject::BluePrint::Composite interfaces



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/automation_object/blue_print.rb', line 35

def create(blueprint_arg)
  case blueprint_arg
  when String
    path = File.expand_path(blueprint_arg)

    self.adapter = if !Dir[File.join(path, '/**/*.rb')].empty?
                     :page_object
                   else
                     :yaml
                   end
  when Hash
    self.adapter = :hash
  end

  adapter.build(blueprint_arg)
end