- 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
.
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