class Capybara::Selector::FilterSet
Attributes
descriptions[R]
Public Class Methods
add(name, &block)
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 48 def add(name, &block) all[name.to_sym] = FilterSet.new(name.to_sym, &block) end
all()
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 44 def all @filter_sets ||= {} end
new(name, &block)
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 8 def initialize(name, &block) @name = name @descriptions = [] instance_eval(&block) end
remove(name)
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 52 def remove(name) all.delete(name.to_sym) end
Public Instance Methods
describe(&block)
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 22 def describe(&block) descriptions.push block end
description(options={})
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 26 def description(options={}) @descriptions.map {|desc| desc.call(options).to_s }.join end
expression_filter(name, *types_and_options, &block)
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 18 def expression_filter(name, *types_and_options, &block) add_filter(name, ExpressionFilter, *types_and_options, &block) end
expression_filters()
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 38 def expression_filters filters.select { |_n, f| f.nil? || f.is_a?(ExpressionFilter) }.freeze end
filter(name, *types_and_options, &block)
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 14 def filter(name, *types_and_options, &block) add_filter(name, Filter, *types_and_options, &block) end
filters()
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 30 def filters @filters ||= {} end
node_filters()
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 34 def node_filters filters.reject { |_n, f| f.nil? || f.is_a?(ExpressionFilter) }.freeze end
Private Instance Methods
add_filter(name, filter_class, *types_and_options, &block)
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 59 def add_filter(name, filter_class, *types_and_options, &block) options = types_and_options.last.is_a?(Hash) ? types_and_options.pop.dup : {} types_and_options.each { |k| options[k] = true} filters[name] = filter_class.new(name, block, options) end