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