class Capybara::Selector::Filter
Public Class Methods
new(name, block, options={})
click to toggle source
# File lib/capybara/selector/filter.rb, line 4 def initialize(name, block, options={}) @name = name @block = block @options = options @options[:valid_values] = [true,false] if options[:boolean] end
Public Instance Methods
default()
click to toggle source
# File lib/capybara/selector/filter.rb, line 15 def default @options[:default] end
default?()
click to toggle source
# File lib/capybara/selector/filter.rb, line 11 def default? @options.has_key?(:default) end
matches?(node, value)
click to toggle source
# File lib/capybara/selector/filter.rb, line 19 def matches?(node, value) return true if skip?(value) if !valid_value?(value) msg = "Invalid value #{value.inspect} passed to filter #{@name} - " if default? warn msg + "defaulting to #{default}" value = default else warn msg + "skipping" return true end end @block.call(node, value) end
skip?(value)
click to toggle source
# File lib/capybara/selector/filter.rb, line 36 def skip?(value) @options.has_key?(:skip_if) && value == @options[:skip_if] end
Private Instance Methods
valid_value?(value)
click to toggle source
# File lib/capybara/selector/filter.rb, line 42 def valid_value?(value) !@options.has_key?(:valid_values) || Array(@options[:valid_values]).include?(value) end