class SimplerCommand::Errors

Provides an Errors implementation similar to ActiveModel::Errors

Public Instance Methods

add(key, value, _opts = {}) click to toggle source
# File lib/simpler_command/errors.rb, line 6
def add(key, value, _opts = {})
  self[key] ||= []
  self[key] << value
  self[key].uniq!
end
add_all(errors_hash) click to toggle source
# File lib/simpler_command/errors.rb, line 12
def add_all(errors_hash)
  errors_hash.each do |key, values|
    Array(values).each do |value|
      add key, value
    end
  end
end
as_json(options = nil) click to toggle source

Allow ActiveSupport to render errors similar to ActiveModel::Errors

# File lib/simpler_command/errors.rb, line 31
def as_json(options = nil)
  {}.tap do |output|
    each do |field, value|
      output[field] ||= []
      output[field] << value
    end
  end.as_json(options)
end
each() { |field, message| ... } click to toggle source
# File lib/simpler_command/errors.rb, line 20
def each
  each_key do |field|
    self[field].each { |message| yield field, message }
  end
end
full_messages() click to toggle source
# File lib/simpler_command/errors.rb, line 26
def full_messages
  map { |attribute, message| full_message(attribute, message) }
end

Private Instance Methods

full_message(attribute, message) click to toggle source
# File lib/simpler_command/errors.rb, line 42
def full_message(attribute, message)
  return message if attribute == :base

  attr_name = StringUtils.humanize(attribute.to_s)
  [attr_name, message].join(" ")
end