class Capybara::Selector::Filters::NodeFilter

Public Class Methods

new(name, matcher, block, **options) click to toggle source
Calls superclass method Capybara::Selector::Filters::Base::new
# File lib/capybara/selector/filters/node_filter.rb, line 9
def initialize(name, matcher, block, **options)
  super
  @block = if boolean?
    proc do |node, value|
      error_cnt = errors.size
      block.call(node, value).tap do |res|
        add_error("Expected #{name} #{value} but it wasn't") if !res && error_cnt == errors.size
      end
    end
  else
    block
  end
end

Public Instance Methods

matches?(node, name, value, context = nil) click to toggle source
# File lib/capybara/selector/filters/node_filter.rb, line 23
def matches?(node, name, value, context = nil)
  apply(node, name, value, true, context)
rescue Capybara::ElementNotFound
  false
end