Sha256: 18290affd7f22838076bfa5b6af5077786d2532afa135e0efff3ab81a5337b16

Contents?: true

Size: 1.44 KB

Versions: 11

Compression:

Stored size: 1.44 KB

Contents

module DataMapper
  module Validate

    ##
    #
    # @author Guy van den Berg
    # @since  0.9
    class ValidationErrors

      include Enumerable

      # Clear existing validation errors.
      def clear!
        errors.clear
      end

      # Add a validation error. Use the field_name :general if the errors does
      # not apply to a specific field of the Resource.
      #
      # @param <Symbol> field_name the name of the field that caused the error
      # @param <String> message    the message to add
      def add(field_name, message)
        (errors[field_name] ||= []) << message
      end

      # Collect all errors into a single list.
      def full_messages
        errors.inject([]) do |list,pair|
          list += pair.last
        end
      end

      # Return validation errors for a particular field_name.
      #
      # @param <Symbol> field_name the name of the field you want an error for
      def on(field_name)
        errors_for_field = errors[field_name]
        errors_for_field.blank? ? nil : errors_for_field
      end

      def each
        errors.map.each do |k,v|
          next if v.blank?
          yield(v)
        end
      end

      def empty?
        entries.empty?
      end

      def method_missing(meth, *args, &block)
        errors.send(meth, *args, &block)
      end

      private
      def errors
        @errors ||= {}
      end

    end # class ValidationErrors
  end # module Validate
end # module DataMapper

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
dm-validations-0.9.3 lib/dm-validations/validation_errors.rb
dm-validations-0.9.5 lib/dm-validations/validation_errors.rb
dm-validations-0.9.2 lib/dm-validations/validation_errors.rb
dm-validations-0.9.4 lib/dm-validations/validation_errors.rb
dm-validations-0.9.8 lib/dm-validations/validation_errors.rb
dm-validations-0.9.6 lib/dm-validations/validation_errors.rb
dm-validations-0.9.9 lib/dm-validations/validation_errors.rb
dm-validations-0.9.7 lib/dm-validations/validation_errors.rb
mack-data_mapper-0.8.2 lib/gems/dm-validations-0.9.7/lib/dm-validations/validation_errors.rb
mack-data_mapper-0.8.3.1 lib/gems/dm-validations-0.9.9/lib/dm-validations/validation_errors.rb
mack-data_mapper-0.8.3 lib/gems/dm-validations-0.9.9/lib/dm-validations/validation_errors.rb