class Shoulda::Matchers::ActiveModel::ValidationMessageFinder

Finds message information from a model’s #errors method.

def allow_description(allowed_values)

def allow_description(allowed_values)
  "allow #{@attribute} to be set to #{allowed_values}"
end

def errors

def errors
  validated_instance.errors
end

def expected_message_from(attribute_message)

def expected_message_from(attribute_message)
  attribute_message
end

def has_messages?

def has_messages?
  errors.present?
end

def initialize(instance, attribute)

def initialize(instance, attribute)
  @instance = instance
  @attribute = attribute
end

def messages

def messages
  Array.wrap(messages_for_attribute)
end

def messages_description

def messages_description
  if errors.empty?
    'no errors'
  else
    "errors: #{pretty_error_messages(validated_instance)}"
  end
end

def messages_for_attribute

def messages_for_attribute
  if errors.respond_to?(:[])
    errors[@attribute]
  else
    errors.on(@attribute)
  end
end

def source_description

def source_description
  'errors'
end

def validate_instance

def validate_instance
  @instance.valid?
  @instance
end

def validated_instance

def validated_instance
  @validated_instance ||= validate_instance
end