class Dill::Widget::NodeFilter
Attributes
selector[R]
Public Class Methods
new(*selector)
click to toggle source
# File lib/dill/widgets/widget/node_filter.rb, line 6 def initialize(*selector) @selector = selector.flatten end
Public Instance Methods
node(parent_widget, *args)
click to toggle source
# File lib/dill/widgets/widget/node_filter.rb, line 10 def node(parent_widget, *args) parent_widget.root.find(*capybara_selector(*args)) end
node?(parent_widget, *args)
click to toggle source
# File lib/dill/widgets/widget/node_filter.rb, line 14 def node?(parent_widget, *args) parent_widget.root.has_selector?(*capybara_selector(*args)) end
nodeless?(parent_widget, *args)
click to toggle source
# File lib/dill/widgets/widget/node_filter.rb, line 18 def nodeless?(parent_widget, *args) parent_widget.root.has_no_selector?(*capybara_selector(*args)) end
nodes(parent_widget, *args)
click to toggle source
# File lib/dill/widgets/widget/node_filter.rb, line 22 def nodes(parent_widget, *args) parent_widget.root.all(*capybara_selector(*args)) end
Private Instance Methods
capybara_selector(*args)
click to toggle source
# File lib/dill/widgets/widget/node_filter.rb, line 28 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 selector + [defaults.merge(selector.pop)] else selector + [defaults] end end