Packages

Spaceboy - Gemini server framework for Elixir Heavily inspired by Phoenix. Heavily simplified.

Current section

Files

Jump to
spaceboy mix.exs
Raw

mix.exs

defmodule Spaceboy.MixProject do
use Mix.Project
@version "0.1.1"
def project do
[
app: :spaceboy,
version: @version,
elixir: "~> 1.11",
consolidate_protocols: Mix.env() != :test,
deps: deps(),
package: package(),
# Docs
name: "Spaceboy",
source_url: "https://git.sr.ht/~sgiath/spaceboy",
homepage_url: "https://hexdocs.pm/spaceboy/",
description: """
Spaceboy - Gemini server framework for Elixir
Heavily inspired by Phoenix. Heavily simplified.
""",
docs: docs()
]
end
def application do
[
extra_applications: [:logger, :ssl, :public_key]
]
end
defp deps do
[
{:ranch, "~> 2.0"},
{:jason, "~> 1.2"},
{:mime, "~> 1.5"},
{:typed_struct, "~> 0.2"},
# Docs dependencies
{:ex_doc, "~> 0.24", only: :dev, runtime: false}
]
end
defp package do
[
maintainers: ["Sgiath"],
licenses: ["WTFPL"],
links: %{
"SourceHut project" => "https://sr.ht/~sgiath/spaceboy/",
"Gemini specs" => "https://gemini.circumlunar.space/"
},
files: ~w(lib mix.exs .formatter.exs README.md)
]
end
defp docs do
[
source_url_patter: "https://git.sr.ht/~sgiath/spaceboy/tree/master/item/%{path}#L%{line}",
main: "Spaceboy.Server",
# extra_section: "Guides",
formatters: ["html", "epub"],
extras: extras(),
groups_for_extras: groups_for_extras(),
groups_for_modules: groups_for_modules(),
groups_for_functions: groups_for_functions()
]
end
defp extras do
[]
end
defp groups_for_extras do
[
# Introduction: ~r/guides\/introduction\/.?/,
# Guides: ~r/guides\/[^\/]+\.md/
]
end
defp groups_for_modules do
[
Server: [
Spaceboy.Server,
Spaceboy.Conn,
Spaceboy.Router
],
Middlewares: [
Spaceboy.Middleware,
Spaceboy.Middleware.Logger
],
Utils: [
Spaceboy.PeerCert
],
Internals: [
Spaceboy.Header,
Spaceboy.Static
]
]
end
defp groups_for_functions do
[
Input: &(&1[:category] == :input),
Success: &(&1[:category] == :success),
Redirect: &(&1[:category] == :redirect),
"Temporary Failure": &(&1[:category] == :temporary_failure),
"Permanent Failure": &(&1[:category] == :permanent_failure),
"Client Certificate Required": &(&1[:category] == :certificate),
Utils: &(&1[:category] == :utils)
]
end
end