Class: RSpec::Matchers::BuiltIn::Include Private

Inherits:
BaseMatcher show all
Includes:
CountExpectation
Defined in:
lib/rspec/matchers/built_in/include.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.

Provides the implementation for include. Not intended to be instantiated directly.

API:

  • private

Constant Summary

Constants inherited from BaseMatcher

BaseMatcher::UNDEFINED

Instance Method Summary collapse

Methods included from CountExpectation

#at_least, #at_most, #exactly, #once, #thrice, #times, #twice

Methods inherited from BaseMatcher

#expects_call_stack_jump?, #match_unless_raises, #supports_block_expectations?

Methods included from Composable

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

Constructor Details

#initialize(*expecteds) ⇒ Include

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

Raises:

API:

  • private



15
16
17
18
# File 'lib/rspec/matchers/built_in/include.rb', line 15

def initialize(*expecteds)
  raise(ArgumentError, 'include() is not supported, please supply an argument') if expecteds.empty?
  @expecteds = expecteds
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:

API:

  • private



44
45
46
# File 'lib/rspec/matchers/built_in/include.rb', line 44

def description
  improve_hash_formatting("include#{readable_list_of(expecteds)}#{count_expectation_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:

API:

  • private



62
63
64
# File 'lib/rspec/matchers/built_in/include.rb', line 62

def diffable?
  !diff_would_wrongly_highlight_matched_item?
end

#does_not_match?(actual) ⇒ 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:

API:

  • private



33
34
35
36
37
38
39
40
# File 'lib/rspec/matchers/built_in/include.rb', line 33

def does_not_match?(actual)
  check_actual?(actual) &&
    if check_expected_count?
      !expected_count_matches?(count_inclusions)
    else
      perform_match { |v| !v }
    end
end

#expectedArray, Hash

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:

API:

  • private



68
69
70
71
72
73
74
# File 'lib/rspec/matchers/built_in/include.rb', line 68

def expected
  if expecteds.one? && Hash === expecteds.first
    expecteds.first
  else
    expecteds
  end
end

#failure_messageString

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:

API:

  • private



50
51
52
# File 'lib/rspec/matchers/built_in/include.rb', line 50

def failure_message
  format_failure_message("to") { super }
end

#failure_message_when_negatedString

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:

API:

  • private



56
57
58
# File 'lib/rspec/matchers/built_in/include.rb', line 56

def failure_message_when_negated
  format_failure_message("not to") { super }
end

#matches?(actual) ⇒ 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:

API:

  • private



22
23
24
25
26
27
28
29
# File 'lib/rspec/matchers/built_in/include.rb', line 22

def matches?(actual)
  check_actual?(actual) &&
    if check_expected_count?
      expected_count_matches?(count_inclusions)
    else
      perform_match { |v| v }
    end
end