Class: Capybara::Queries::SiblingQuery Private
- Inherits:
-
SelectorQuery
- Object
- BaseQuery
- SelectorQuery
- Capybara::Queries::SiblingQuery
- Defined in:
- lib/capybara/queries/sibling_query.rb
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Constant Summary
Constants inherited from SelectorQuery
Capybara::Queries::SelectorQuery::VALID_KEYS, Capybara::Queries::SelectorQuery::VALID_MATCH
Constants inherited from BaseQuery
Instance Attribute Summary
Attributes inherited from SelectorQuery
#expression, #locator, #options, #selector
Attributes inherited from BaseQuery
Instance Method Summary collapse
- #description(applied = false) ⇒ Object private
-
#initialize(*args) ⇒ SiblingQuery
constructor
private
A new instance of SiblingQuery.
- #resolve_for(node, exact = nil) ⇒ Object private
Methods inherited from SelectorQuery
#applied_description, #css, #exact?, #failure_message, #label, #match, #matches_filters?, #name, #negative_failure_message, #supports_exact?, #visible, #xpath
Methods inherited from BaseQuery
#expects_none?, #failure_message, #matches_count?, #negative_failure_message, wait, #wait
Constructor Details
#initialize(*args) ⇒ SiblingQuery
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of SiblingQuery.
6 7 8 9 10 11 12 |
# File 'lib/capybara/queries/sibling_query.rb', line 6 def initialize(*args) super @count_options = {} COUNT_KEYS.each do |key| @count_options[key] = @options.delete(key) if @options.key?(key) end end |
Instance Method Details
#description(applied = false) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
24 25 26 27 28 29 |
# File 'lib/capybara/queries/sibling_query.rb', line 24 def description(applied = false) desc = super sibling_query = @sibling_node&.instance_variable_get(:@query) desc += " that is a sibling of #{sibling_query.description}" if sibling_query desc end |
#resolve_for(node, exact = nil) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
15 16 17 18 19 20 21 22 |
# File 'lib/capybara/queries/sibling_query.rb', line 15 def resolve_for(node, exact = nil) @sibling_node = node node.synchronize do match_results = super(node.session.current_scope, exact) xpath = XPath.preceding_sibling + XPath.following_sibling node.all(:xpath, xpath, **@count_options) { |el| match_results.include?(el) } end end |