README.md

# Pact

Better dependency injection in Elixir for cleaner code and testing.

## Why?

Because testing Elixir flat out sucks. Why clutter up your code injecting
dependencies when a process can handle it for you?

* You can declare your modules instead of passing them around like state.
* You can override dependencies per process to make testing easier.
* It makes your code look a lot cleaner.

## Usage

```elixir
Pact.start
Pact.put("string", String)

Pact.get("string").to_atom("xyz") # => :xyz

Pact.override(self, "string", Integer)
Pact.get("string").parse("1234") # => {1234, ""}
```