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 52 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 48 def all @filter_sets ||= {} # rubocop:disable Naming/MemoizedInstanceVariableName end
new(name, &block)
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 10 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 56 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 24 def describe(&block) descriptions.push block end
description(**options)
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 28 def description(**options) opts = options_with_defaults(options) @descriptions.map do |desc| desc.call(opts).to_s end.join end
expression_filter(name, *types_and_options, &block)
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 20 def expression_filter(name, *types_and_options, &block) add_filter(name, Filters::ExpressionFilter, *types_and_options, &block) end
expression_filters()
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 43 def expression_filters filters.select { |_n, f| f.nil? || f.is_a?(Filters::ExpressionFilter) }.freeze end
filter(name, *types_and_options, &block)
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 16 def filter(name, *types_and_options, &block) add_filter(name, Filters::NodeFilter, *types_and_options, &block) end
filters()
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 35 def filters @filters ||= {} end
node_filters()
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 39 def node_filters filters.reject { |_n, f| f.nil? || f.is_a?(Filters::ExpressionFilter) }.freeze end
Private Instance Methods
add_filter(name, filter_class, *types, **options, &block)
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 71 def add_filter(name, filter_class, *types, **options, &block) types.each { |k| options[k] = true } filters[name] = filter_class.new(name, block, options) end
options_with_defaults(options)
click to toggle source
# File lib/capybara/selector/filter_set.rb, line 63 def options_with_defaults(options) options = options.dup filters.each do |name, filter| options[name] = filter.default if filter.default? && !options.key?(name) end options end