Parent

Class/Module Index [+]

Quicksearch

Sequel::Model::Errors

Errors represents validation errors, a simple hash subclass with a few convenience methods.

Constants

ATTRIBUTE_JOINER

Public Instance Methods

[](k) click to toggle source

Assign an array of messages for each attribute on access. Using this message is discouraged in new code, use add to add new error messages, and on to check existing error messages.

# File lib/sequel/model/errors.rb, line 12
def [](k)
  if has_key?(k)
    super
  else
    Sequel::Deprecation.deprecate('Model::Errors#[] autovivification', 'Please switch to Model::Errors#add to add errors, and Model::Errors#on to get errors')
    self[k] = []
  end
end
add(att, msg) click to toggle source

Adds an error for the given attribute.

errors.add(:name, 'is not valid') if name == 'invalid'
# File lib/sequel/model/errors.rb, line 24
def add(att, msg)
  fetch(att){self[att] = []} << msg
end
count() click to toggle source

Return the total number of error messages.

errors.count # => 3
# File lib/sequel/model/errors.rb, line 31
def count
  values.inject(0){|m, v| m + v.length}
end
empty?() click to toggle source

Return true if there are no error messages, false otherwise.

# File lib/sequel/model/errors.rb, line 36
def empty?
  count == 0
end
full_messages() click to toggle source

Returns an array of fully-formatted error messages.

errors.full_messages
# => ['name is not valid',
#     'hometown is not at least 2 letters']
# File lib/sequel/model/errors.rb, line 45
def full_messages
  inject([]) do |m, kv| 
    att, errors = *kv
    errors.each {|e| m << (e.is_a?(LiteralString) ? e : "#{Array(att).join(ATTRIBUTE_JOINER)} #{e}")}
    m
  end
end
on(att) click to toggle source

Returns the array of errors for the given attribute, or nil if there are no errors for the attribute.

errors.on(:name) # => ['name is not valid']
errors.on(:id) # => nil
# File lib/sequel/model/errors.rb, line 58
def on(att)
  if v = fetch(att, nil) and !v.empty?
    v
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.