Packages
ex_gram
0.61.0
0.67.0
0.66.0
0.65.0
0.64.0
0.63.0
0.62.0
0.61.0
0.60.0
0.58.0
0.57.0
0.56.1
0.56.0
0.55.1
0.55.0
0.54.0
0.53.0
0.52.2
0.52.1
0.52.0
0.51.1
0.51.0
0.50.2
0.50.1
0.50.0
0.41.0
0.40.0
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.1
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.1
0.8.0
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.0
0.5.0-rc6
0.5.0-rc5
0.5.0-rc4
0.5.0-rc3
0.5.0-rc2
Telegram Bot API low level and framework
Current section
Files
Jump to
Current section
Files
mix.exs
defmodule ExGram.Mixfile do
use Mix.Project
@source_url "https://github.com/rockneurotiko/ex_gram"
@version "0.61.0"
def project do
[
app: :ex_gram,
version: @version,
package: package(),
description: description(),
source_url: "https://github.com/rockneurotiko/ex_gram",
elixir: "~> 1.15",
elixirc_paths: elixirc_paths(Mix.env()),
build_embedded: Mix.env() == :prod,
start_permanent: Mix.env() == :prod,
deps: deps(),
dialyzer: [plt_add_apps: [:mix, :eex]],
xref: [exclude: [EEx]],
docs: docs()
]
end
# Configuration for the OTP application
#
# Type "mix help compile.app" for more information
def application do
# Don't need to write all applications thanks of new feature on elixir 1.4
[extra_applications: [:logger]]
end
defp description do
"Telegram Bot API low level and framework"
end
defp package do
[
maintainers: ["Miguel Garcia / Rock Neurotiko"],
licenses: ["Beerware"],
links: %{"GitHub" => "https://github.com/rockneurotiko/ex_gram"},
files: ~w(lib guides templates mix.exs README.md CHANGELOG.md LICENSE)
]
end
# Specifies which paths to compile per environment.
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
defp deps do
[
# Tesla adapter
{:tesla, "~> 1.16", optional: true},
{:gun, "~> 2.0", optional: true},
{:hackney, "~> 1.20", optional: true},
{:req, "~> 0.5.0", optional: true},
# JSON encoders/decoders
{:jason, ">= 1.0.0", optional: true},
{:poison, ">= 1.0.0", optional: true},
# Webhook adapter
{:plug, "~> 1.14", optional: true},
# For Markdown to MessageEntity convert
{:mdex, "~> 0.11", optional: true},
# Test adapter uses NimbleOwnership for per-process isolation
{:nimble_ownership, "~> 1.0"},
# Development
{:credo, "~> 1.7", only: [:dev, :test], runtime: false, warn_if_outdated: true},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
{:ex_doc, "~> 0.40", only: :dev, runtime: false, warn_if_outdated: true},
{:styler, "~> 1.11", only: [:dev, :test], runtime: false, warn_if_outdated: true}
]
end
defp docs do
[
main: "readme",
source_ref: @version,
source_url: @source_url,
extra_section: "GUIDES",
skip_undefined_reference_warnings_on: ["CHANGELOG.md"],
extras: extras(),
groups_for_extras: groups_for_extras(),
groups_for_modules: [
DSL: ~r/ExGram\.Dsl.*/,
Middlewares: ~r/ExGram\.Middleware.*/,
Responses: ~r/ExGram\.Responses.*/,
Test: [~r/ExGram\.Test/, ~r/ExGram\..*\.Test/],
Updates: ~r/ExGram\.Updates.*/,
Adapters: ~r/ExGram\.Adapter.*/,
Encoder: ~r/ExGram\.Encoder.*/,
Macros: ~r/ExGram\.Macros.*/,
Models: ~r/ExGram\.Model.*/
]
]
end
@guides "guides" |> File.ls!() |> Enum.filter(&String.ends_with?(&1, ".md")) |> Enum.map(&"guides/#{&1}")
defp extras do
[
"README.md",
"CHANGELOG.md",
"LICENSE"
] ++ @guides
end
defp groups_for_extras do
[
Cheatsheet: "guides/cheatsheet.md",
Basic: ~r/guides\/(installation|getting-started|handling-updates|commands|sending-messages)\.md/,
Intermediate: ~r/guides\/(polling-and-webhooks|message-entities|middlewares|low-level-api)\.md/,
Advanced: ~r/guides\/(multiple-bots|flyio|)\.md/,
Testing: "guides/testing.md",
"Other Guides": ~r/guides\/.*/
]
end
end