module Capybara::Pagemap::Button

Button build methods for clickable DOM elements

Public Instance Methods

button_method_missing(method_name, *_, &_block) click to toggle source
# File lib/capybara/pagemap/button.rb, line 18
def button_method_missing(method_name, *_, &_block)
  return unless /(?<key>.*)_button$/ =~ method_name && self.class.node_definitions[key.to_sym] && self.class.node_definitions[key.to_sym][:type] == :button
  build_button(key.to_sym)
  send(method_name)
end
button_respond_to_missing?(method_name, _include_private = false) click to toggle source
# File lib/capybara/pagemap/button.rb, line 24
def button_respond_to_missing?(method_name, _include_private = false)
  /(?<key>.*)_button$/ =~ method_name && self.class.node_definitions[key.to_sym]
end
button_validator_for(node) click to toggle source
# File lib/capybara/pagemap/button.rb, line 14
def button_validator_for(node)
  !send("#{node}_button").nil?
end

Private Instance Methods

build_button(key_name) click to toggle source
# File lib/capybara/pagemap/button.rb, line 30
      def build_button(key_name)
        instance_eval <<-RUBY
          def #{key_name}_button
            @#{key_name}_button ||= page.find(:xpath, self.class.node_definitions[:#{key_name}][:value])
          end
        RUBY
      end