class Napybara::FinderMethodsAppender
Attributes
block[R]
child_element_name[R]
child_element_selector[R]
element[R]
optional_args[R]
Public Class Methods
new( element, child_element_name, child_element_selector, optional_args, block)
click to toggle source
# File lib/napybara/finder_methods_appender.rb, line 8 def initialize( element, child_element_name, child_element_selector, optional_args, block) @element, @child_element_name, @child_element_selector, @optional_args, @block = element, child_element_name, child_element_selector, optional_args, block end
Public Instance Methods
capybara_options()
click to toggle source
# File lib/napybara/finder_methods_appender.rb, line 22 def capybara_options return {} if optional_args.empty? return {} if !optional_args.last.is_a?(Hash) optional_args.last end
execute()
click to toggle source
# File lib/napybara/finder_methods_appender.rb, line 29 def execute define_child_element_method define_has_child_element_method define_has_no_child_element_method define_child_elements_method end
record_selector()
click to toggle source
# File lib/napybara/finder_methods_appender.rb, line 15 def record_selector return if optional_args.empty? return if !optional_args[0].is_a?(String) optional_args[0] end
Private Instance Methods
define_child_element_method()
click to toggle source
# File lib/napybara/finder_methods_appender.rb, line 38 def define_child_element_method appender = self element.define_singleton_method(child_element_name) do |record = nil| selector = Selector.new( appender.child_element_selector, appender.record_selector, record) selector_string = selector.to_s capybara_element = self.get.find(selector_string, appender.capybara_options) self.class.new(capybara_element, self, selector_string, &appender.block) end end
define_child_elements_method()
click to toggle source
# File lib/napybara/finder_methods_appender.rb, line 81 def define_child_elements_method appender = self element.define_singleton_method(child_element_name.to_s.pluralize) do elements = self.get.all(appender.child_element_selector).map do |child_element| self.class.new( child_element, self, appender.child_element_selector, &appender.block) end ElementArray.new(elements, self, appender.child_element_selector) end end
define_has_child_element_method()
click to toggle source
# File lib/napybara/finder_methods_appender.rb, line 56 def define_has_child_element_method appender = self element.define_singleton_method("has_#{child_element_name}?") do |record = nil| selector = Selector.new( appender.child_element_selector, appender.record_selector, record) self.get.has_css?(selector.to_s) end end
define_has_no_child_element_method()
click to toggle source
# File lib/napybara/finder_methods_appender.rb, line 68 def define_has_no_child_element_method appender = self element.define_singleton_method("has_no_#{child_element_name}?") do |record = nil| selector = Selector.new( appender.child_element_selector, appender.record_selector, record) self.get.has_no_css?(selector.to_s) end end