Packages
exvcr
0.14.4
0.17.1
0.17.0
0.16.0
0.15.2
0.15.1
0.15.0
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.3
0.12.2
0.12.1
0.12.0
0.11.2
0.11.1
0.11.0
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.1
0.9.0
0.8.12
0.8.11
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.7
0.1.6
0.1.5
HTTP request/response recording library for elixir, inspired by VCR.
Current section
Files
Jump to
Current section
Files
lib/exvcr/application.ex
defmodule ExVCR.Application do
use Application
def start(_type, _args) do
children =
if global_mock_enabled?() do
globally_mock_adapters()
[ExVCR.Actor.CurrentRecorder]
else
[]
end
Supervisor.start_link(children, strategy: :one_for_one, name: ExVCR.Supervisor)
end
defp globally_mock_adapters do
for app <- [:hackney, :ibrowse, :httpc, Finch], true == Code.ensure_loaded?(app) do
app
|> target_methods()
|> Enum.each(fn {function, callback} ->
:meck.expect(app, function, callback)
end)
end
end
defp target_methods(:hackney), do: ExVCR.Adapter.Hackney.target_methods()
defp target_methods(:ibrowse), do: ExVCR.Adapter.IBrowse.target_methods()
defp target_methods(:httpc), do: ExVCR.Adapter.Httpc.target_methods()
defp target_methods(Finch), do: ExVCR.Adapter.Finch.target_methods()
def global_mock_enabled? do
Application.get_env(:exvcr, :global_mock, false)
end
end