class Shoulda::Matchers::ActiveModel::ValidationMessageFinder

Finds message information from a model's errors method.

Public Class Methods

new(instance, attribute, context=nil) click to toggle source
# File lib/shoulda/matchers/active_model/validation_message_finder.rb, line 9
def initialize(instance, attribute, context=nil)
  @instance = instance
  @attribute = attribute
  @context = context
end

Public Instance Methods

allow_description(allowed_values) click to toggle source
# File lib/shoulda/matchers/active_model/validation_message_finder.rb, line 15
def allow_description(allowed_values)
  "allow #{@attribute} to be set to #{allowed_values}"
end
expected_message_from(attribute_message) click to toggle source
# File lib/shoulda/matchers/active_model/validation_message_finder.rb, line 19
def expected_message_from(attribute_message)
  attribute_message
end
has_messages?() click to toggle source
# File lib/shoulda/matchers/active_model/validation_message_finder.rb, line 23
def has_messages?
  errors.present?
end
messages() click to toggle source
# File lib/shoulda/matchers/active_model/validation_message_finder.rb, line 39
def messages
  Array.wrap(messages_for_attribute)
end
messages_description() click to toggle source
# File lib/shoulda/matchers/active_model/validation_message_finder.rb, line 31
def messages_description
  if errors.empty?
    'no errors'
  else
    "errors: #{pretty_error_messages(validated_instance)}"
  end
end
source_description() click to toggle source
# File lib/shoulda/matchers/active_model/validation_message_finder.rb, line 27
def source_description
  'errors'
end

Private Instance Methods

errors() click to toggle source
# File lib/shoulda/matchers/active_model/validation_message_finder.rb, line 53
def errors
  validated_instance.errors
end
messages_for_attribute() click to toggle source
# File lib/shoulda/matchers/active_model/validation_message_finder.rb, line 45
def messages_for_attribute
  if errors.respond_to?(:[])
    errors[@attribute]
  else
    errors.on(@attribute)
  end
end
validate_instance() click to toggle source
# File lib/shoulda/matchers/active_model/validation_message_finder.rb, line 61
def validate_instance
  @instance.valid?(@context)
  @instance
end
validated_instance() click to toggle source
# File lib/shoulda/matchers/active_model/validation_message_finder.rb, line 57
def validated_instance
  @validated_instance ||= validate_instance
end