class Sequel::Model::Errors

def full_messages

# 'hometown is not at least 2 letters']
# => ['name is not valid',
errors.full_messages

Returns an array of fully-formatted error messages.
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