API Reference flexflow v0.2.0

Modules

Usage

defmodule Review do
  @vsn "1.0.1"
  use Flexflow.Process

  defmodule Reviewing do
    use Flexflow.State
  end

  defmodule Submit do
    use Flexflow.Event
  end

  ## Start state
  state {Start, :draft}
  state {End, :reviewed}
  state {End, :canceled}
  ## Bypass state
  state :rejected
  ## Custom state
  state Reviewing

  ## Define a event
  ## `a ~> b` is a shortcut of `{a, b}`
  event :modify1, :draft ~> :draft
  event :cancel1, :draft ~> :canceled, results: [:foo]

  ## Custom event
  event Submit, :draft ~> Reviewing

  event :modify2, :rejected ~> :rejected
  event :cancel2, :rejected ~> :canceled, results: [:foo]

  ## With custom name
  event {Submit, :submit2}, :rejected ~> Reviewing

  event :reject, Reviewing ~> :rejected
  event :agree, Reviewing ~> :reviewed, results: [:foo]
end

Default value:

  • telemetry_default_handler: true

EventDispatcher

ProcessManager

ProcessParentManager

Examples

iex> defmodule DemoRegistry do
...>   use Elixir.Flexflow.ProcessRegistry
...> end
...> match?({:via, Registry, {Elixir.Flexflow.ProcessRegistry, {DemoRegistry, :abc}}}, DemoRegistry.via_tuple(:abc))
true

Telemetry