Flexflow (flexflow v0.1.5)
View Source
Usage
defmodule Review do
@moduledoc false
defmodule Draft do
use Flexflow.Node
end
defmodule Inreview do
use Flexflow.Node
end
defmodule Reviewed do
use Flexflow.Node
end
defmodule Rejected do
use Flexflow.Node
end
defmodule Canceled do
use Flexflow.Node
end
defmodule Submit do
use Flexflow.Transition
end
defmodule Agree do
use Flexflow.Transition
end
defmodule Modify do
use Flexflow.Transition
end
defmodule Reject do
use Flexflow.Transition
end
defmodule Cancel do
use Flexflow.Transition
end
use Flexflow.Process, version: 1
## Define a start node
start_node Draft
## Define an end node with custom name
end_node {Reviewed, "Already reviewed"}
end_node Canceled
## Define an intermediate node
intermediate_node Inreview
intermediate_node Rejected
## Define a transition
## `a ~> b` is a shortcut of `{a, b}`
transition Submit, Draft ~> Inreview
transition Modify, Draft ~> Draft
transition Cancel, Draft ~> Canceled
## Define a transition with custom name
transition {Submit, "Submit rejected"}, Rejected ~> Inreview
transition Modify, Rejected ~> Rejected
transition Cancel, Rejected ~> Canceled
## Define a transition
transition Reject, Inreview ~> Rejected
transition Agree, Inreview ~> {Reviewed, "Already reviewed"}
end