/beepbop

Adds atom state support to beepbop.

Primary LanguageElixirMIT LicenseMIT

BeepBop

Build Status codecov

TODO

  • Bump Ecto version
  • Check if the module is actually a Schema, and that it has the given filed in the struct.
  • Implement %{from: %{not: []}}.
  • Implement %{from: :any}.
  • Implement some custom compile time warnings/checks like ecto
  • Ensure that event names are unique!
  • Make to_state optional.
  • Finalise the event function signatures:
    @spec event_name(BeepBop.Context.t(), keyword) :: BeepBop.Context.t()
  • Compile time warnings about unused states.
  • Move event function generation to __before_compile__
  • Write tests to cover compile time errors/warnings with Code.eval_quoted
  • Write tests to cover repo operations.
  • Pick up code attributes written above event, like @doc.

Installation

The package can be installed in your project by adding beepbop to your list of dependencies in mix.exs:

def deps do
  [
    {:beepbop, github: "oyeb/beepbop"}
  ]
end