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