class RSpec::Matchers::BuiltIn::HaveAttributes

@api private Provides the implementation for `have_attributes`. Not intended to be instantiated directly.

Attributes

respond_to_failed[R]

@private

Public Class Methods

new(expected) click to toggle source
# File lib/rspec/matchers/built_in/have_attributes.rb, line 11
def initialize(expected)
  @expected = expected
  @values = {}
  @respond_to_failed = false
  @negated = false
end

Public Instance Methods

actual() click to toggle source

@private

# File lib/rspec/matchers/built_in/have_attributes.rb, line 19
def actual
  @values
end
description() click to toggle source

@api private @return [String]

# File lib/rspec/matchers/built_in/have_attributes.rb, line 43
def description
  described_items = surface_descriptions_in(expected)
  improve_hash_formatting "have attributes #{RSpec::Support::ObjectFormatter.format(described_items)}"
end
diffable?() click to toggle source

@api private @return [Boolean]

# File lib/rspec/matchers/built_in/have_attributes.rb, line 50
def diffable?
  !@respond_to_failed && !@negated
end
does_not_match?(actual) click to toggle source

@api private @return [Boolean]

# File lib/rspec/matchers/built_in/have_attributes.rb, line 34
def does_not_match?(actual)
  @actual = actual
  @negated = true
  return false unless respond_to_attributes?
  perform_match(:none?)
end
failure_message() click to toggle source

@api private @return [String]

# File lib/rspec/matchers/built_in/have_attributes.rb, line 56
def failure_message
  respond_to_failure_message_or do
    "expected #{actual_formatted} to #{description} but had attributes #{ formatted_values }"
  end
end
failure_message_when_negated() click to toggle source

@api private @return [String]

# File lib/rspec/matchers/built_in/have_attributes.rb, line 64
def failure_message_when_negated
  respond_to_failure_message_or { "expected #{actual_formatted} not to #{description}" }
end
matches?(actual) click to toggle source

@api private @return [Boolean]

# File lib/rspec/matchers/built_in/have_attributes.rb, line 25
def matches?(actual)
  @actual = actual
  @negated = false
  return false unless respond_to_attributes?
  perform_match(:all?)
end