defmodule ArangoXEcto.MixProject do
use Mix.Project
@version "2.0.1"
@source_url "https://github.com/TomGrozev/arangox_ecto"
def project do
[
app: :arangox_ecto,
version: @version,
elixir: "~> 1.10",
start_permanent: Mix.env() == :prod,
deps: deps(),
test_coverage: [tool: ExCoveralls],
preferred_cli_env: [
coveralls: :test,
"coveralls.detail": :test,
"coveralls.github": :test,
"coveralls.html": :test
],
# Hex
description: "An ArangoDB adapter for Ecto supporting Ecto queries and graph queries.",
package: package(),
# Docs
name: "ArangoX Ecto",
docs: docs()
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger],
mod: {ArangoXEcto.Application, []},
env: [
log_levels: [:info],
log_colours: %{info: :green, debug: :normal},
log_in_colour: System.get_env("MIX_ENV") == "dev"
]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
ecto_dep(),
{:arangox, "~> 0.6.0"},
{:velocy, "~> 0.1"},
{:jason, "~> 1.2"},
{:geo, "~> 3.0"},
{:ex_doc, "~> 0.31", only: :dev, runtime: false},
{:credo, "~> 1.7.4", only: [:dev, :test], runtime: false},
{:doctor, "~> 0.21.0", only: [:dev, :test], runtime: false},
{:git_hooks, "~> 0.7.0", only: [:test, :dev], runtime: false},
{:excoveralls, "~> 0.18", only: :test}
]
end
defp ecto_dep do
if path = System.get_env("ECTO_PATH") do
{:ecto, path: path}
else
{:ecto, "~> 3.12"}
end
end
defp package do
[
maintainers: ["Tom Grozev"],
licenses: ["Apache-2.0"],
links: %{"GitHub" => @source_url},
files: ~w(.formatter.exs mix.exs README.md lib)
]
end
defp docs do
[
main: "ArangoXEcto",
source_ref: "v#{@version}",
logo: "images/logo.png",
extra_section: "GUIDES",
source_url: @source_url,
skip_undefined_reference_warnings_on: ["CHANGELOG.md"],
extras: extras(),
before_closing_head_tag: &before_closing_head_tag/1,
groups_for_extras: groups_for_extras(),
groups_for_docs: [
group_for_function("Migration")
],
groups_for_modules: [
ArangoSearch: [
ArangoXEcto.Analyzer,
ArangoXEcto.View,
ArangoXEcto.View.Link
],
Geo: [
ArangoXEcto.GeoData,
ArangoXEcto.Types.GeoJSON
],
Migration: [
ArangoXEcto.Migration,
ArangoXEcto.Migration.Analyzer,
ArangoXEcto.Migration.Collection,
ArangoXEcto.Migration.Command,
ArangoXEcto.Migration.Index,
ArangoXEcto.Migration.JsonSchema,
ArangoXEcto.Migration.View,
ArangoXEcto.Migrator,
ArangoXEcto.Sandbox
],
"Relation structs": [
ArangoXEcto.Association.EdgeMany,
ArangoXEcto.Association.Graph
]
],
canonical: "http://hex.pm/arangox_ecto"
]
end
defp before_closing_head_tag(:html) do
"""
"""
end
defp before_closing_head_tag(:epub), do: ""
defp extras do
[
"guides/introduction/Getting Started.md",
"guides/introduction/Testing with ArangoXEcto.md",
"guides/howtos/Graphing.md",
"guides/howtos/Arango Search.md",
"CHANGELOG.md"
]
end
defp group_for_function(group), do: {String.to_atom(group), &(&1[:group] == group)}
defp groups_for_extras do
[
Introduction: ~r/guides\/introduction\/.?/,
Cheatsheets: ~r/guides\/cheetsheets\/.?/,
"How-To's": ~r/guides\/howtos\/.?/
]
end
end