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