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