class Grape::Exceptions::Base

def [](index)

def [](index)
  __send__ index
end

def compose_message(key, **)

def compose_message(key, **)
  short_message = translate_message(key, **)
  return short_message unless short_message.is_a?(Hash)
  MESSAGE_STEPS.filter_map do |step, label|
    next unless short_message.key?(step)
    detail = translate_message(:"#{key}.#{step}", **)
    "\n#{label}:\n  #{detail}" if detail.present?
  end.join
end

def initialize(status: nil, message: nil, headers: nil)

def initialize(status: nil, message: nil, headers: nil)
  super(message)
  @status  = status
  @headers = headers
end

def translate_message(translation_key, **)

def translate_message(translation_key, **)
  case translation_key
  when Symbol
    translate(translation_key, **)
  when Hash
    translation_key => { key:, **opts }
    translate(key, **opts)
  when Proc
    translation_key.call
  else
    translation_key
  end
end