Class: RSpec::Matchers::BuiltIn::Compound Private

Inherits:
BaseMatcher
  • Object
show all
Defined in:
lib/rspec/matchers/built_in/compound.rb

Overview

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.

Base class for and and or compound matchers.

Direct Known Subclasses

And, Or

Defined Under Namespace

Classes: And, NestedEvaluator, Or, SequentialEvaluator

Constant Summary

Constants inherited from BaseMatcher

BaseMatcher::UNDEFINED

Instance Method Summary collapse

Methods inherited from BaseMatcher

#match_unless_raises, #matches?

Methods included from BaseMatcher::DefaultFailureMessages

#failure_message, #failure_message_when_negated

Methods included from Composable

#===, #and, #description_of, #or, should_enumerate?, surface_descriptions_in, unreadable_io?, #values_match?

Constructor Details

#initialize(matcher_1, matcher_2) ⇒ Compound

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 Compound.

10
11
12
13
# File 'lib/rspec/matchers/built_in/compound.rb', line 10
def initialize(matcher_1, matcher_2)
  @matcher_1 = matcher_1
  @matcher_2 = matcher_2
end

Instance Method Details

#descriptionString

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:

  • (String)
25
26
27
# File 'lib/rspec/matchers/built_in/compound.rb', line 25
def description
  "#{matcher_1.description} #{conjunction} #{matcher_2.description}"
end

#diffable?Boolean

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:

  • (Boolean)
41
42
43
# File 'lib/rspec/matchers/built_in/compound.rb', line 41
def diffable?
  matcher_is_diffable?(matcher_1) || matcher_is_diffable?(matcher_2)
end

#expectedRSpec::Matchers::ExpectedsForMultipleDiffs

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.

47
48
49
50
# File 'lib/rspec/matchers/built_in/compound.rb', line 47
def expected
  return nil unless evaluator
  ::RSpec::Matchers::ExpectedsForMultipleDiffs.for_many_matchers(diffable_matcher_list)
end

#expects_call_stack_jump?Boolean

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:

  • (Boolean)
34
35
36
37
# File 'lib/rspec/matchers/built_in/compound.rb', line 34
def expects_call_stack_jump?
  NestedEvaluator.matcher_expects_call_stack_jump?(matcher_1) ||
  NestedEvaluator.matcher_expects_call_stack_jump?(matcher_2)
end

#supports_block_expectations?Boolean

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:

  • (Boolean)
29
30
31
32
# File 'lib/rspec/matchers/built_in/compound.rb', line 29
def supports_block_expectations?
  matcher_supports_block_expectations?(matcher_1) &&
  matcher_supports_block_expectations?(matcher_2)
end