class Capybara::UI::Widget::NodeFilter
Attributes
selector[R]
Public Class Methods
new(*selector)
click to toggle source
# File lib/capybara/ui/widgets/widget/node_filter.rb, line 7 def initialize(*selector) @selector = selector.flatten end
Public Instance Methods
node(parent_widget, *args)
click to toggle source
# File lib/capybara/ui/widgets/widget/node_filter.rb, line 11 def node(parent_widget, *args) a, kw = capybara_selector(*args) parent_widget.root.find(*a, **kw) end
node?(parent_widget, *args)
click to toggle source
# File lib/capybara/ui/widgets/widget/node_filter.rb, line 16 def node?(parent_widget, *args) a, kw = capybara_selector(*args) parent_widget.root.has_selector?(*a, **kw) end
nodeless?(parent_widget, *args)
click to toggle source
# File lib/capybara/ui/widgets/widget/node_filter.rb, line 21 def nodeless?(parent_widget, *args) a, kw = capybara_selector(*args) parent_widget.root.has_no_selector?(*a, **kw) end
nodes(parent_widget, *args)
click to toggle source
# File lib/capybara/ui/widgets/widget/node_filter.rb, line 26 def nodes(parent_widget, *args) a, kw = capybara_selector(*args) parent_widget.root.all(*a, **kw) end
Private Instance Methods
capybara_selector(*args)
click to toggle source
# File lib/capybara/ui/widgets/widget/node_filter.rb, line 33 def capybara_selector(*args) # TODO detect signature errors (e.g., passing a different arity than the # one required by the selector proc, etc) selector = if @selector.first.respond_to?(:call) @selector.first.call(*args) else @selector end selector = Array(selector).flatten defaults = {:wait => 0} if Hash === selector.last return selector, defaults.merge(selector.pop) else return selector, defaults end end