lib/rule_engine/error/basic.ex

#-------------------------------------------------------------------------------
# Author: Keith Brings
# Copyright (C) 2018 Noizu Labs, Inc. All rights reserved.
#-------------------------------------------------------------------------------

defmodule Noizu.RuleEngine.Error.Basic do
  defexception message: "Basic Exception", code: -1
  def raise(msg \\ "Basic Exception", code \\ -1) do
    Kernel.raise Noizu.RuleEngine.Error.Basic, message: msg, code: code
  end

  def new(msg \\ "Basic Exception", code \\ -1) do
    %__MODULE__{
      message: msg,
      code: code
    }
  end
end

defimpl Noizu.RuleEngine.ErrorProtocol, for: Noizu.RuleEngine.Error.Basic do
  def code(error), do: error.code

  def message(error), do: error.message
  def message(error, _options), do: error.message
end