class CMDx::Errors
def add(key, value)
def add(key, value) errors[key] ||= [] errors[key] << value errors[key].uniq! end
def added?(key, val)
def added?(key, val) return false unless key?(key) errors[key].include?(val) end
def each
def each errors.each_key do |key| errors[key].each { |val| yield(key, val) } end end
def full_message(key, value)
def full_message(key, value) "#{key} #{value}" end
def full_messages
def full_messages errors.each_with_object([]) do |(key, arr), memo| arr.each { |val| memo << full_message(key, val) } end end
def full_messages_for(key)
def full_messages_for(key) return [] unless key?(key) errors[key].map { |val| full_message(key, val) } end
def initialize
def initialize @errors = {} end
def invalid?
def invalid? !valid? end
def merge!(hash)
def merge!(hash) errors.merge!(hash) do |_, arr1, arr2| arr3 = arr1 + arr2 arr3.uniq! arr3 end end
def messages_for(key)
def messages_for(key) return [] unless key?(key) errors[key] end
def present?
def present? !blank? end
def to_hash(full_messages = false)
def to_hash(full_messages = false) return errors unless full_messages errors.each_with_object({}) do |(key, arr), memo| memo[key] = arr.map { |val| full_message(key, val) } end end