Skip to content

Commit

Permalink
Merge pull request #18 from norbajunior/14-customize-formatter-to-not…
Browse files Browse the repository at this point in the history
…-set-parenthesis-on-transition-statements

In order to keep a friendly code style to the dsl it was configured the `.formatter.exs` to no use parenthesis in macros

Before

```elixir
from(:some_state, to: :another, event: "some_event")

from :some_state do
  to(:another, event: "some_event")
end
```

Now

```elixir
from :some_state, to: :another, event: "some_event"

from :some_state do
  to :another, event: "some_event"
end
```
  • Loading branch information
norbajunior committed Jul 21, 2022
2 parents c1a37e3 + e5a28d8 commit 0579edf
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 20 deletions.
8 changes: 7 additions & 1 deletion .formatter.exs
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
# Used by "mix format"
functions = [event: 1, event: 2, from: 2, from: 3, to: 1, to: 2]

[
inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"],
locals_without_parens: functions,
export: [
locals_without_parens: functions
]
]
25 changes: 25 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,31 @@ defmodule SelectionProcess.V2 do
end
```

### Code formatter

Elixir formatter (`mix format`) put parenthesis around the macros

```elixir
from(:some_state, to: :another, event: "some_event")

from :some_state do
to(:another, event: "some_event")
end
```

However machinist's `.formatter.exs` is configured to not use parenthesis. In order to follow the code style without parenthesis you can export the machinist config in your project.

In your `.formatter.exs` file just add:

```elixir
[
# ...
import_deps: [:machinist]
]
```

And you're good to go 🧙‍♀️.

## How does the DSL works?

The use of `transitions` in combination with each `from` statement will be
Expand Down
38 changes: 19 additions & 19 deletions test/machinist_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ defmodule MachinistTest do
use Machinist

transitions do
from(1, to: 2, event: "next")
from(2, to: 3, event: "next")
from 1, to: 2, event: "next"
from 2, to: 3, event: "next"
end
end

Expand All @@ -28,8 +28,8 @@ defmodule MachinistTest do
use Machinist

transitions attr: :step do
from(1, to: 2, event: "next")
from(2, to: 3, event: "next")
from 1, to: 2, event: "next"
from 2, to: 3, event: "next"
end
end

Expand All @@ -52,8 +52,8 @@ defmodule MachinistTest do
use Machinist

transitions Candidate do
from(:new, to: :registered, event: "register")
from(:registered, to: :enrolled, event: "enroll")
from :new, to: :registered, event: "register"
from :registered, to: :enrolled, event: "enroll"
end
end

Expand All @@ -63,9 +63,9 @@ defmodule MachinistTest do
use Machinist

transitions Candidate do
from(:new, to: :registered, event: "register")
from(:registered, to: :interviewed, event: "interviewed")
from(:interviewed, to: :enrolled, event: "enroll")
from :new, to: :registered, event: "register"
from :registered, to: :interviewed, event: "interviewed"
from :interviewed, to: :enrolled, event: "enroll"
end
end

Expand Down Expand Up @@ -111,7 +111,7 @@ defmodule MachinistTest do
use Machinist

transitions User, attr: :step do
from(1, to: 2, event: "next")
from 1, to: 2, event: "next"
end
end

Expand All @@ -128,16 +128,16 @@ defmodule MachinistTest do
use Machinist

transitions do
from(:new, to: :registered, event: "register")
from(:registered, to: :interview_scheduled, event: "schedule_interview")
from :new, to: :registered, event: "register"
from :registered, to: :interview_scheduled, event: "schedule_interview"

from :interview_scheduled do
to(:approved, event: "approve_interview")
to(:reproved, event: "reprove_interview")
to :approved, event: "approve_interview"
to :repproved, event: "reprove_interview"
end

from(:approved, to: :enrolled, event: "enroll")
from(_state, to: :application_expired, event: "application_expired")
from :approved, to: :enrolled, event: "enroll"
from _state, to: :application_expired, event: "application_expired"
end
end

Expand Down Expand Up @@ -166,9 +166,9 @@ defmodule MachinistTest do
from(:test, to: :test1, event: "test1")

from :test1 do
to(:test2, event: "test2")
to(:test3, event: "test3")
to(:test4, event: "test4")
to :test2, event: "test2"
to :test3, event: "test3"
to :test4, event: "test4"
end
end
end
Expand Down

0 comments on commit 0579edf

Please sign in to comment.