defmodule Routex.MixProject do use Mix.Project @source_url "https://github.com/BartOtten/routex" @version "1.1.0" @name "Routex" def project do [ app: :routex, version: @version, elixir: "~> 1.11", deps: deps() ++ dev_deps(), aliases: aliases(), elixirc_paths: elixirc_paths(Mix.env()), compilers: compilers(Mix.env()), dialyzer: dialyzer(), # Docs name: @name, description: description(), source_url: @source_url, docs: docs(), package: package(), test_coverage: [tool: ExCoveralls], consolidate_protocols: Mix.env() != :test, preferred_cli_env: [ coveralls: :test, "coveralls.detail": :test, "coveralls.post": :test, "coveralls.html": :test, "phx.routes": :test, compile: :test, "gettext.extract": :test, "gettext.merge": :test ] ] end # Run "mix help compile.app" to learn about applications. def application do if Mix.env() == :test, do: Application.put_env(:phoenix, :json_library, Jason) [ extra_applications: [:logger] ] end def aliases, do: [docs: ["docs", ©_assets/1]] # Specifies which paths to compile per environment. defp elixirc_paths(:dev), do: ["lib"] defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] defp compilers(:test), do: Mix.compilers() defp compilers(_), do: Mix.compilers() defp dialyzer, do: [plt_add_apps: [:mix, :gettext, :phoenix_live_view]] # Run "mix help deps" to learn about dependencies. defp deps do [ {:phoenix, ">= 1.7.0"} ] end defp dev_deps do [ {:phoenix_view, ">= 2.0.0", optional: true}, {:phoenix_live_view, "~> 0.18 or ~> 1.0", optional: true}, {:gettext, ">= 0.26.0", optional: true}, {:phoenix_html_helpers, "~> 1.0"}, {:jason, "~> 1.0", only: [:dev, :test], optional: true}, {:ex_doc, "~> 0.34", only: [:dev, :test]}, {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:excoveralls, "~> 0.14", only: :test}, {:floki, ">= 0.30.0", only: :test}, {:dialyxir, "~> 1.0", only: [:dev], runtime: false}, {:makeup_diff, "~> 0.1.0", only: [:dev]}, {:git_ops, "~> 2.6.3", only: [:dev]}, {:benchee, "~> 1.0", only: :dev} ] end defp package do [ maintainers: ["Bart Otten"], licenses: ["MIT"], files: ~w(lib .formatter.exs mix.exs docs README.md LICENSE.md CHANGELOG.md CONTRIBUTING.md USAGE.md), links: %{ Changelog: "https://hexdocs.pm/routex/changelog.html", GitHub: "https://github.com/BartOtten/routex", Demo: "https://routex.fly.dev/", Tutorial: "https://hexdocs.pm/routex/tutorial_localized_routes.html" } ] end defp description() do "Extension driven superpowers for Phoenix Routes" end defp docs do [ main: "readme", logo: "assets/logo.png", source_ref: "v#{@version}", source_url: @source_url, assets: %{"assets" => "assets"}, before_closing_head_tag: &docs_before_closing_head_tag/1, extras: [ "README.md": [title: "Overview"], "USAGE.md": [title: "Getting started"], "docs/EXTENSION_SUMMARIES.md": [title: "Included extensions"], "docs/ROUTEX_AND_PHOENIX_ROUTER.md": [title: "Routex and Phoenix Router"], "docs/EXTENSION_DEVELOPMENT.md": [title: "Extensions"], "docs/COMPARISON.md": [title: "Routing solutions compared"], "docs/TROUBLESHOOTING.md": [title: "Troubleshooting"], "CHANGELOG.md": [title: "Changelog"], "docs/guides/LOCALIZED_ROUTES.md": [title: "Localized Routes"], "docs/guides/LOCALIZATION_VS_TRANSLATION.md": [title: "Localization vs Translation"] ], groups_for_extras: [ "The project": ["README.md", "docs/EXTENSION_SUMMARIES.md"], Guides: ["USAGE.md"] ++ Path.wildcard("docs/guides/*.md"), Extra: [ "docs/ROUTEX_AND_PHOENIX_ROUTER.md", "docs/COMPARISON.md", "CHANGELOG.md", "docs/TROUBLESHOOTING.md" ], Development: ["docs/EXTENSION_DEVELOPMENT.md"] ], filter_modules: ~r"Elixir.Routex.*$", groups_for_modules: [ Routex: ~r"Routex\.?[^.]*$", Extensions: ~r"Routex.Extension\.[^.]*$", Submodules: ~r"Routex.Extension\..*\.*$" ], nest_modules_by_prefix: [ Routex.Extension.Alternatives, Routex.Extension ], skip_undefined_reference_warnings_on: [ "Routex.Extension", "Routex.Processing", "Routex.Route" ], skip_code_autolink_to: ["Phoenix.Router.Route"] ] end defp copy_assets(_) do File.cp_r("assets", "doc/assets") end defp docs_before_closing_head_tag(:html) do ~s| | end defp docs_before_closing_head_tag(_), do: "" end