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::SPATIAL_KEYS, 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
rubocop:disable Style/OptionalBooleanParameter.
- #resolve_for(node, exact = nil) ⇒ Object private
Methods inherited from SelectorQuery
#applied_description, #css, #exact?, #failure_message, #initialize, #label, #match, #matches_filters?, #name, #negative_failure_message, #supports_exact?, #visible, #xpath
Methods inherited from BaseQuery
#expects_none?, #failure_message, #initialize, #matches_count?, #negative_failure_message, #wait, wait
Constructor Details
This class inherits a constructor from Capybara::Queries::SelectorQuery
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.
rubocop:disable Style/OptionalBooleanParameter
19 20 21 22 23 24 |
# File 'lib/capybara/queries/sibling_query.rb', line 19 def description(applied = false) # rubocop:disable Style/OptionalBooleanParameter 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.
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/capybara/queries/sibling_query.rb', line 7 def resolve_for(node, exact = nil) @sibling_node = node node.synchronize do scope = node.respond_to?(:session) ? node.session.current_scope : node.find(:xpath, '/*') match_results = super(scope, exact) siblings = node.find_xpath((XPath.preceding_sibling + XPath.following_sibling).to_s) .map(&method(:to_element)) .select { |el| match_results.include?(el) } Capybara::Result.new(ordered_results(siblings), self) end end |