class Judge::MessageCollection

Attributes

amv[R]
kind[R]
method[R]
object[R]
options[R]

Public Class Methods

new(object, method, amv) click to toggle source
# File lib/judge/message_collection.rb, line 11
def initialize(object, method, amv)
  @object   = object
  @method   = method
  @amv      = amv
  @kind     = amv.kind
  @options  = amv.options.dup
  @messages = {}
  generate_messages!
end

Public Instance Methods

custom_messages?() click to toggle source
# File lib/judge/message_collection.rb, line 32
def custom_messages?
  amv.respond_to?(:messages_to_lookup) && amv.messages_to_lookup.present?
end
generate_messages!() click to toggle source
# File lib/judge/message_collection.rb, line 21
def generate_messages!
  return if @kind == :uniqueness
  %w{base options integer custom blank}.each do |type|
    @messages = @messages.merge(self.send(:"#{type}_messages"))
  end
end
to_hash() click to toggle source
# File lib/judge/message_collection.rb, line 28
def to_hash
  @messages
end

Private Instance Methods

base_messages() click to toggle source
# File lib/judge/message_collection.rb, line 38
def base_messages
  msgs = {}
  if MESSAGE_MAP.has_key?(kind) && MESSAGE_MAP[kind][:base].present?
    base_message = MESSAGE_MAP[kind][:base]
    msgs[base_message] = object.errors.generate_message(method, base_message, options)
  end
  msgs
end
blank_messages() click to toggle source
# File lib/judge/message_collection.rb, line 61
def blank_messages
  msgs = {}
  if ALLOW_BLANK.include?(kind) && options[:allow_blank].blank? && @messages[:blank].blank?
    msgs[:blank] = object.errors.generate_message(method, :blank)
  end
  msgs
end
custom_messages() click to toggle source
# File lib/judge/message_collection.rb, line 77
def custom_messages
  msgs = {}
  if custom_messages?
    amv.messages_to_lookup.each do |key|
      msgs[key.to_sym] = object.errors.generate_message(method, key)
    end
  end
  msgs
end
integer_messages() click to toggle source
# File lib/judge/message_collection.rb, line 69
def integer_messages
  msgs = {}
  if kind == :numericality && options[:only_integer].present?
    msgs[:not_an_integer] = object.errors.generate_message(method, :not_an_integer)
  end
  msgs
end
options_messages() click to toggle source
# File lib/judge/message_collection.rb, line 47
def options_messages
  msgs = {}
  if MESSAGE_MAP.has_key?(kind) && MESSAGE_MAP[kind][:options].present?
    opt_messages = MESSAGE_MAP[kind][:options]
    opt_messages.each do |opt, opt_message|
      if options.has_key?(opt)
        options_for_interpolation = { :count => options[opt] }.merge(options)
        msgs[opt_message] = object.errors.generate_message(method, opt_message, options_for_interpolation)
      end
    end
  end
  msgs
end