module Shoulda::ActiveRecord::Helpers

def default_error_message(key, values = {})

default_error_message(:too_long, :count => 60)
default_error_message(:too_short, :count => 5)
default_error_message(:blank)

introduced I18n module used for localization.
Record. Works for both existing Rails 2.1 and Rails 2.2 with the newly
Helper method that determines the default error message used by Active
def default_error_message(key, values = {})
  if Object.const_defined?(:I18n) # Rails >= 2.2
    I18n.translate("activerecord.errors.messages.#{key}", values)
  else # Rails <= 2.1.x
    ::ActiveRecord::Errors.default_error_messages[key] % values[:count]
  end
end

def get_instance_of(object_or_klass)

def get_instance_of(object_or_klass)
  if object_or_klass.is_a?(Class)
    klass = object_or_klass
    instance_variable_get("@#{instance_variable_name_for(klass)}") || klass.new
  else
    object_or_klass
  end
end

def instance_variable_name_for(klass)

def instance_variable_name_for(klass)
  klass.to_s.split('::').last.underscore
end

def pretty_error_messages(obj) # :nodoc:

:nodoc:
def pretty_error_messages(obj) # :nodoc:
  obj.errors.map do |a, m| 
    msg = "#{a} #{m}" 
    msg << " (#{obj.send(a).inspect})" unless a.to_sym == :base
  end
end