Packages
mob_new
0.6.13
0.6.15
0.6.14
0.6.13
0.6.12
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.33
0.4.32
0.4.31
0.4.30
0.4.29
0.4.28
0.4.27
0.4.26
0.4.25
0.4.24
0.4.23
0.4.22
0.4.21
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.16
0.3.15
0.3.14
0.3.13
0.3.12
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
0.1.45
0.1.44
0.1.43
0.1.42
0.1.40
0.1.33
0.1.30
0.1.29
0.1.28
0.1.27
0.1.26
0.1.25
0.1.24
0.1.23
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Project generator for the Mob mobile framework
Current section
Files
Jump to
Current section
Files
mix.exs
# An installed mob_new archive sits on the code path ahead of this project's
# own beams, so `mix mob.new` run inside a checkout would execute the archive's
# (older) generator against this checkout's templates (`--local` reads them
# from here). A template that reads an assign the archive's code doesn't set
# then fails to compile (MOB-465). Inside the checkout, the checkout's code wins.
for path <- :code.get_path(),
path |> to_string() |> String.contains?("/archives/mob_new-"),
do: Code.delete_path(to_string(path))
defmodule MobNew.MixProject do
use Mix.Project
def project do
[
app: :mob_new,
version: "0.6.13",
elixir: "~> 1.19",
deps: deps(),
aliases: aliases(),
description: "Project generator for the Mob mobile framework",
source_url: "https://github.com/genericjam/mob_new",
package: package(),
docs: docs()
]
end
def application do
[extra_applications: [:logger, :eex]]
end
defp aliases do
# `mix setup` after cloning installs deps and activates the shared git
# hooks (.githooks): format / Credo --strict / compile run on every push
# and the full suite when mix.exs changes — the same gate CI enforces.
[setup: ["deps.get", "cmd git config core.hooksPath .githooks"]]
end
defp deps do
[
{:jason, "~> 1.4"},
{:ex_doc, ">= 0.0.0", only: :dev, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
# ex_slop — Credo check that catches AI-generated Elixir patterns
# (blanket rescue, narrator docs, etc). Wired in via .credo.exs.
{:ex_slop, "~> 0.4", only: [:dev, :test], runtime: false},
# mix_audit — CVE scan over mix.lock. Invocation note: `mix
# deps.audit` alone fails with `YamlElixir.read_from_file/1 is
# undefined` because mix_audit doesn't ensure_all_started its
# yaml_elixir transitive dep; CI uses `mix do app.start +
# deps.audit` which starts the host app and pulls yaml_elixir in.
{:mix_audit, "~> 2.1", only: [:dev, :test], runtime: false}
]
end
defp docs do
[
main: "Mix.Tasks.Mob.New",
source_url: "https://github.com/genericjam/mob_new",
source_url_pattern: "https://github.com/genericjam/mob_new/blob/master/%{path}#L%{line}",
extras: [
"README.md": [title: "mob_new"],
"CHANGELOG.md": [title: "Changelog"]
]
]
end
defp package do
[
licenses: ["MIT"],
links: %{"GitHub" => "https://github.com/genericjam/mob_new"}
]
end
end