class ReeErrors::Error

def code

def code
  c = self.class.instance_variable_get(:@code)
  if !c
    raise ArgumentError.new(
      "code was not specified for domain error => #{self.inspect}"
    )
  end
  c
end

def initialize(msg = nil)

def initialize(msg = nil)
  if !locale && !msg
    raise ArgumentError, "message or locale should be specified"
  end
  super(
    locale ? t(locale, default_by_locale: :en) : msg
  )
end

def locale

def locale
  self.class.instance_variable_get(:@locale)
end

def type

def type
  t = self.class.instance_variable_get(:@type)
  if !t
    raise ArgumentError.new(
      "type was not specified for domain error => #{self.inspect}"
    )
  end
  t
end