module SeleniumRecord::ComponentAutoload::ClassMethods

Class method helpers for autoloading components

Public Instance Methods

action_component_reader(*names) click to toggle source
# File lib/selenium_record/component_autoload.rb, line 111
def action_component_reader(*names)
  names.each { |name| load_action_component name }
end
component_method_regex() click to toggle source
# File lib/selenium_record/component_autoload.rb, line 96
def component_method_regex
  /(?<component_name>.*)_(?<component_type>view|tab|pill|modal|panel)$/
end
component_reader(*names) click to toggle source

Inject components after loading dom, providing reader methods for accessing them @param names [Array<Symbol>] component names. Valid formats Regex: /(?<component_name>.*)_(?<component_type>view|tab|pill|modal|panel)$/

# File lib/selenium_record/component_autoload.rb, line 104
def component_reader(*names)
  names.each { |name| create_component_reader name }
  define_method :after_load_dom do
    load_components names
  end
end

Private Instance Methods

create_component_reader(name) click to toggle source
# File lib/selenium_record/component_autoload.rb, line 117
def create_component_reader(name)
  define_method name do
    instance_variable_get "@#{name}"
  end
end
load_action_component(name) click to toggle source

@param name [Symbol] name of the component. Valid formats Regex:

/(?<component_name>.*)_(?<component_type>tab|pill|modal)$/
# File lib/selenium_record/component_autoload.rb, line 125
def load_action_component(name)
  define_method name do
    component_for name
  end
end