Class: DataMapper::Validate::ValidationErrors

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/dm-validations/validation_errors.rb

Overview

Author:

  • Guy van den Berg

Since:

  • 0.9

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(meth, *args, &block) ⇒ Object

Since:

  • 0.9


52
53
54
# File 'lib/dm-validations/validation_errors.rb', line 52

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

Instance Method Details

#add(field_name, message) ⇒ Object

Add a validation error. Use the field_name :general if the errors does not apply to a specific field of the Resource.

Parameters:

  • field_name (Symbol)

    the name of the field that caused the error

  • message (String)

    the message to add

Since:

  • 0.9


22
23
24
# File 'lib/dm-validations/validation_errors.rb', line 22

def add(field_name, message)
  (errors[field_name] ||= []) << message
end

#clear!Object

Clear existing validation errors.

Since:

  • 0.9


13
14
15
# File 'lib/dm-validations/validation_errors.rb', line 13

def clear!
  errors.clear
end

#eachObject

Since:

  • 0.9


41
42
43
44
45
46
# File 'lib/dm-validations/validation_errors.rb', line 41

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

#empty?Boolean

Returns:

  • (Boolean)

Since:

  • 0.9


48
49
50
# File 'lib/dm-validations/validation_errors.rb', line 48

def empty?
  entries.empty?
end

#full_messagesObject

Collect all errors into a single list.

Since:

  • 0.9


27
28
29
30
31
# File 'lib/dm-validations/validation_errors.rb', line 27

def full_messages
  errors.inject([]) do |list,pair|
    list += pair.last
  end
end

#on(field_name) ⇒ Object

Return validation errors for a particular field_name.

Parameters:

  • field_name (Symbol)

    the name of the field you want an error for

Since:

  • 0.9


36
37
38
39
# File 'lib/dm-validations/validation_errors.rb', line 36

def on(field_name)
  errors_for_field = errors[field_name]
  errors_for_field.blank? ? nil : errors_for_field
end