Class: Warden::Proxy::Errors

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/warden/errors.rb

Overview

Lifted from DataMapper’s dm-validations plugin :)

Author:

  • Guy van den Berg

Since:

  • DM 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:

  • DM 0.9



52
53
54
# File 'lib/warden/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 authentication 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:

  • DM 0.9



22
23
24
# File 'lib/warden/errors.rb', line 22

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

#clear!Object

Clear existing authentication errors.

Since:

  • DM 0.9



13
14
15
# File 'lib/warden/errors.rb', line 13

def clear!
  errors.clear
end

#eachObject

Since:

  • DM 0.9



41
42
43
44
45
46
# File 'lib/warden/errors.rb', line 41

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

#empty?Boolean

Returns:

  • (Boolean)

Since:

  • DM 0.9



48
49
50
# File 'lib/warden/errors.rb', line 48

def empty?
  entries.empty?
end

#full_messagesObject

Collect all errors into a single list.

Since:

  • DM 0.9



27
28
29
30
31
# File 'lib/warden/errors.rb', line 27

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

#on(field_name) ⇒ Object

Return authentication errors for a particular field_name.

Parameters:

  • field_name (Symbol)

    the name of the field you want an error for

Since:

  • DM 0.9



36
37
38
39
# File 'lib/warden/errors.rb', line 36

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