Packages
rambla
1.1.3
1.5.0
1.4.2
1.4.1
1.4.0
1.3.0
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
0.16.6
0.16.5
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.0
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.1
0.13.0
0.12.2
0.12.1
0.11.1
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Easy publishing to many different targets. Supported back-ends: - Rabbit [Amqp](https://hexdocs.pm/amqp/) - Redis [Redix](https://hexdocs.pm/redix) - Http [:httpc](http://erlang.org/doc/man/httpc.html) - Smtp [:gen_smtp](https://hexdocs.pm/gen_smtp) - Slack [Envío](https://hexdocs.pm/envio)
Current section
Files
Jump to
Current section
Files
lib/rambla/telemetria.ex
defmodule Rambla.Telemetria do
@moduledoc false
default_options = [use: [], apply: [level: :info]]
all_options =
:telemetria
|> Application.compile_env(:applications, [])
|> Keyword.get(:rambla, [])
@options (case all_options do
true -> default_options
[_ | _] -> Keyword.merge(default_options, all_options)
_ -> []
end)
@use @options != [] and match?({:module, Telemetria}, Code.ensure_compiled(Telemetria))
defmacro __using__(opts \\ []),
do: if(@use, do: quote(do: use(Telemetria, unquote(opts))), else: :ok)
@spec use? :: boolean()
def use?, do: @use
@spec use!(module :: module(), opts :: keyword()) :: :ok | nil
def use!(module, opts \\ true),
do: if(Rambla.Telemetria.use?(), do: Module.put_attribute(module, :telemetria, opts))
@spec options :: keyword()
def options, do: @options
@spec use_options :: keyword()
def use_options,
do: options() |> Keyword.get(:use, [])
@spec apply_options :: keyword()
def apply_options,
do: options() |> Keyword.get(:apply, [])
end