class RSpec::Mocks::ArgumentMatchers::ArrayExcludingMatcher

@private

Public Class Methods

new(unexpected) click to toggle source
# File lib/rspec/mocks/argument_matchers.rb, line 275
def initialize(unexpected)
  @unexpected = unexpected.uniq
end

Public Instance Methods

===(actual) click to toggle source
# File lib/rspec/mocks/argument_matchers.rb, line 279
def ===(actual)
  actual = actual.uniq
  return false unless (actual & @unexpected).empty?

  actual.none? do |actual_element|
    @unexpected.any? do |unexpected_element|
      RSpec::Support::FuzzyMatcher.values_match?(unexpected_element, actual_element)
    end
  end
rescue NoMethodError
  false
end
description() click to toggle source
# File lib/rspec/mocks/argument_matchers.rb, line 292
def description
  "array_excluding(#{formatted_unexpected_values})"
end

Private Instance Methods

formatted_unexpected_values() click to toggle source
# File lib/rspec/mocks/argument_matchers.rb, line 298
def formatted_unexpected_values
  @unexpected.map do |x|
    RSpec::Support.rspec_description_for_object(x)
  end.join(", ")
end