Sha256: 3c727593e2ef32d6c9e1585113d336c0126611d05065dfcdbee2e0e376eb775d

Contents?: true

Size: 1.3 KB

Versions: 11

Compression:

Stored size: 1.3 KB

Contents

# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
#
# Fat Free CRM is freely distributable under the terms of MIT license.
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
#------------------------------------------------------------------------------
module FatFreeCRM
  module ActiveModel
    module Errors

      # Override ActiveModel::Errors#each so we could display validation
      # errors as is without rendering the attribute name. Simply place
      # a caret as the first character of the error message.
      #
      # This feature was handled by 'advanced_errors' plugin in Rails 2.x
      # version of Fat Free CRM.
      #----------------------------------------------------------------------------
      def self.included(base)
        base.class_eval do
          alias_method :each, :each_with_explicit_error
        end
      end

      def each_with_explicit_error
        keys.each do |attribute|
          self[attribute].each do |error|
            if error.start_with?('^')
              yield :base, error[1..-1]   # Drop the attribute.
            else
              yield attribute, error      # This is default Rails3 behavior.
            end
          end
        end
      end

    end
  end
end

ActiveModel::Errors.send(:include, FatFreeCRM::ActiveModel::Errors)

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
fat_free_crm-0.13.6 lib/fat_free_crm/errors.rb
fat_free_crm-0.13.5 lib/fat_free_crm/errors.rb
fat_free_crm-0.13.4 lib/fat_free_crm/errors.rb
fat_free_crm-0.13.3 lib/fat_free_crm/errors.rb
fat_free_crm-0.13.2 lib/fat_free_crm/errors.rb
fat_free_crm-0.12.3 lib/fat_free_crm/errors.rb
fat_free_crm-0.12.2 lib/fat_free_crm/errors.rb
fat_free_crm-0.13.1 lib/fat_free_crm/errors.rb
fat_free_crm-0.12.1 lib/fat_free_crm/errors.rb
fat_free_crm-0.13.0 lib/fat_free_crm/errors.rb
fat_free_crm-0.12.0 lib/fat_free_crm/errors.rb