example_files v1.0.0 ExampleFiles
A GenServer that provides access to the ExampleFiles.File processes for a
project.
Summary
Functions
Returns an ExampleFiles.File PID for each example file in the System.cwd!,
spawning such processes if they are not already running
Finds subsets of all that share a value for
ExampleFiles.File.path_when_pulled
Filters all for items having a unique value for
ExampleFiles.File.path_when_pulled
Starts an ExampleFiles process, linked to the current process, with the
specified example_files_options (ExampleFiles.Options)
Starts an ExampleFiles process, linked to the current process, with the
specified arguments and options
Functions
Returns an ExampleFiles.File PID for each example file in the System.cwd!,
spawning such processes if they are not already running.
Examples
iex> {:ok, options} = ExampleFiles.Options.start_link(~w(--ignore EXAMPLE-file1))
...> {:ok, example_files} = ExampleFiles.start_link(options: options)
...> File.cd!("spec/fixtures/collisions", fn -> example_files |> ExampleFiles.all end) |> Enum.map(&ExampleFiles.File.path/1) |> Enum.sort
["file1.example", "file2.example"] |> Enum.sort
iex> {:ok, options} = ExampleFiles.Options.start_link([])
...> {:ok, example_files} = ExampleFiles.start_link(options: options)
...> File.cd! "spec/fixtures/empty", fn -> example_files |> ExampleFiles.all end
[]
Finds subsets of all that share a value for
ExampleFiles.File.path_when_pulled.
Examples
iex> {:ok, options} = ExampleFiles.Options.start_link([])
...> {:ok, example_files} = ExampleFiles.start_link(options: options)
...> File.cd!("spec/fixtures/collisions", fn -> example_files |> ExampleFiles.collisions end) |> Enum.map(fn(collision_group) -> collision_group |> Enum.map(&ExampleFiles.File.path/1) |> Enum.sort end) |> Enum.sort
[~w(EXAMPLE-file1 file1.example)] |> Enum.map(&Enum.sort/1) |> Enum.sort
iex> {:ok, options} = ExampleFiles.Options.start_link([])
...> {:ok, example_files} = ExampleFiles.start_link(options: options)
...> File.cd!("spec/fixtures/no_collisions", fn -> example_files |> ExampleFiles.collisions end) |> Enum.map(fn(collision_group) -> collision_group |> Enum.map(&ExampleFiles.File.path/1) |> Enum.sort end) |> Enum.sort
[]
Filters all for items having a unique value for
ExampleFiles.File.path_when_pulled.
Examples
iex> {:ok, options} = ExampleFiles.Options.start_link([])
...> {:ok, example_files} = ExampleFiles.start_link(options: options)
...> File.cd!("spec/fixtures/collisions", fn -> example_files |> ExampleFiles.noncollisions end) |> Enum.map(&ExampleFiles.File.path/1) |> Enum.sort
["file2.example"] |> Enum.sort
Starts an ExampleFiles process, linked to the current process, with the
specified example_files_options (ExampleFiles.Options).
start_link([%ExampleFiles.State{all: term, options: term}] | [{:options, GenServer.server}], [{atom, any}]) :: GenServer.on_start
Starts an ExampleFiles process, linked to the current process, with the
specified arguments and options.
The process exits if arguments does not contain an ExampleFiles.State.