/usr/lib/ruby/1.8/errors.rb is in libvalidatable-ruby1.8 1.6.7-6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | module Validatable
class Errors
extend Forwardable
include Enumerable
def_delegators :errors, :clear, :each, :each_pair, :empty?, :length, :size
# call-seq: on(attribute)
#
# * Returns nil, if no errors are associated with the specified +attribute+.
# * Returns the error message, if one error is associated with the specified +attribute+.
# * Returns an array of error messages, if more than one error is associated with the specified +attribute+.
def on(attribute)
return nil if errors[attribute.to_sym].nil?
errors[attribute.to_sym].size == 1 ? errors[attribute.to_sym].first : errors[attribute.to_sym]
end
def add(attribute, message) #:nodoc:
errors[attribute.to_sym] = [] if errors[attribute.to_sym].nil?
errors[attribute.to_sym] << message
end
def merge!(errors) #:nodoc:
errors.each_pair{|k, v| add(k,v)}
self
end
# call-seq: replace(attribute)
#
# * Replaces the errors value for the given +attribute+
def replace(attribute, value)
errors[attribute.to_sym] = value
end
# call-seq: raw(attribute)
#
# * Returns an array of error messages associated with the specified +attribute+.
def raw(attribute)
errors[attribute.to_sym]
end
def errors #:nodoc:
@errors ||= {}
end
def count #:nodoc:
errors.values.flatten.size
end
# call-seq: full_messages -> an_array_of_messages
#
# Returns an array containing the full list of error messages.
def full_messages
full_messages = []
errors.each_key do |attribute|
errors[attribute].each do |msg|
next if msg.nil?
if attribute.to_s == "base"
full_messages << msg
else
full_messages << humanize(attribute.to_s) + " " + msg
end
end
end
full_messages
end
def humanize(lower_case_and_underscored_word) #:nodoc:
lower_case_and_underscored_word.to_s.gsub(/_id$/, "").gsub(/_/, " ").capitalize
end
end
end
|