Packages
exvcr
0.7.0
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/mix/tasks.ex
defmodule Mix.Tasks.Vcr do
use Mix.Task
@shortdoc "Operate exvcr cassettes"
@moduledoc """
Provides mix tasks for operating cassettes.
## Command line options
* `--dir` - specifies the vcr cassette directory.
* `--custom` - specifies the custom cassette directory.
* `-i (--interactive) - ask for confirmation for each file operation.
"""
@doc "Entry point for [mix vcr] task"
def run(args) do
{options, _, _} = OptionParser.parse(args, aliases: [d: :dir, c: :custom, h: :help])
if options[:help] do
ExVCR.Task.Util.print_help_message
else
ExVCR.Task.Util.parse_basic_options(options) |> ExVCR.Task.Runner.show_vcr_cassettes
end
end
defmodule Delete do
use Mix.Task
@doc "Entry point for [mix vcr.delete] task"
def run(args) do
{options, files, _} =
OptionParser.parse(args,
switches: [interactive: :boolean, all: :boolean],
aliases: [d: :dir, i: :interactive, a: :all])
pattern = cond do
options[:all] -> ~r/.*/
Enum.count(files) == 1 -> Enum.at(files, 0)
true -> nil
end
if pattern do
ExVCR.Task.Runner.delete_cassettes(
options[:dir] || ExVCR.Setting.get_default_vcr_path,
pattern, options[:interactive] || false)
else
IO.puts "[Invalid Param] Specify substring of cassette file-name to be deleted - `mix vcr.delete [pattern]`, or use `mix vcr.delete --all` for deleting all cassettes."
end
end
end
defmodule Check do
@moduledoc """
Check how the recorded cassettes are used while executing [mix test] task.
"""
use Mix.Task
@doc "Entry point for [mix vcr.check] task."
def run(args) do
{options, _files, _} = OptionParser.parse(args, aliases: [d: :dir, c: :custom])
dirs = ExVCR.Task.Util.parse_basic_options(options)
ExVCR.Checker.start(%ExVCR.Checker.Results{dirs: dirs})
Mix.env(:test)
Mix.Task.run("test")
System.at_exit(fn(_) ->
ExVCR.Task.Runner.check_cassettes(ExVCR.Checker.get)
end)
end
end
defmodule Show do
@moduledoc """
Show the contents of the cassettes.
"""
use Mix.Task
@doc "Entry point for [mix vcr.show] task."
def run(args) do
{_options, files, _} = OptionParser.parse(args, aliases: [])
ExVCR.Task.Show.run(files)
end
end
end