Skip to content

Instantly share code, notes, and snippets.

View leandrocp's full-sized avatar

Leandro Pereira leandrocp

View GitHub Profile
@leandrocp
leandrocp / elixir_code_quality_gitignore
Last active June 6, 2019 15:06
elixir_code_quality_gitignore
# The directory Mix will write compiled artifacts to.
/_build/
# If you run "mix test --cover", coverage assets end up here.
/cover/
# The directory Mix downloads your dependencies sources to.
/deps/
# Where 3rd-party dependencies like ExDoc output generated docs.
@leandrocp
leandrocp / .dialyzer_ignore.exs
Created June 6, 2019 13:58
elixir_code_quality_dialyzer_ignore.exs
[
{":0:unknown_function Function ExUnit.Callbacks.__merge__/3 does not exist."},
{":0:unknown_function Function ExUnit.CaseTemplate.__proxy__/2 does not exist."}
]
@leandrocp
leandrocp / elixir_code_quality_aliases.ex
Last active June 6, 2019 14:17
elixir_code_quality_aliases.ex
defp aliases do
[
# current aliases...
quality: ["format", "credo --strict", "sobelow --verbose", "dialyzer", "test"],
"quality.ci": [
"test",
"format --check-formatted",
"credo --strict",
"sobelow --exit",
@leandrocp
leandrocp / elixir_code_quality_project_deps.exs
Last active June 6, 2019 14:11
elixir_code_quality_project_deps.exs
defmodule YourProject.MixProject do
use Mix.Project
def project do
[
# current configs...
elixirc_options: [warnings_as_errors: true],
aliases: aliases(),
dialyzer: [
@leandrocp
leandrocp / elixir_code_mix.exs
Last active June 6, 2019 14:20
elixir_code_mix.exs
defmodule YourProject.MixProject do
use Mix.Project
def project do
[
app: :your_project,
version: "0.1.0",
elixir: "~> 1.6",
elixirc_paths: elixirc_paths(Mix.env()),
elixirc_options: [warnings_as_errors: true],
@leandrocp
leandrocp / elixir_code_quality_project_function.exs
Last active June 5, 2019 15:17
elixir_code_quality_project_function
def project do
[
app: :your_project,
version: "0.1.0",
elixir: "~> 1.6",
elixirc_paths: elixirc_paths(Mix.env()),
elixirc_options: [warnings_as_errors: true],
compilers: [:phoenix, :gettext] ++ Mix.compilers(),
start_permanent: Mix.env() == :prod,
aliases: aliases(),
.
└── apps
├── core
│   └── lib
│   ├── maintenance
│   ├── selling
├── payment
└── website
.
└── apps
├── core
│   └── lib
│   ├── maintenance
│   ├── maintenance.ex
│   ├── selling
│   └── selling.ex
├── payment
│   └── lib
@leandrocp
leandrocp / art_bc_support_specs.ex
Last active October 25, 2018 12:43
art_bc_support_specs.ex
defmodule Support do
@type customer :: %{id: integer, last_ticket_id: integer}
@spec get_customer(integer) :: {:ok, customer} | {:error, binary}
def get_customer(customer_id) when is_integet(customer_id) do
# your logic here ...
# return the common pattern {:ok, data} or {:error, data}
{:ok, customer}
end
end