CHANGELOG.md

# Changelog

## 3.1.2

- `AOC.IEx.mod/1` now calls `Code.ensure_loaded!/1` to ensure the target module
  is loaded. This is done to prevent issues where `p1e` and `p1i` complain that
  the target module does not exist.

## 3.1.1

- `input_stream`, `input_string`, `example_stream` and `example_string` now
  only trim trailing newlines, not significant whitespace.

## 3.1.0

- Timezone support: the project now accepts a `time_zone` configuration setting
  which can be used to specify the time zone used by the input fetcher and iex
  helpers. This can be set to a time zone string, to `:aoc` or to `:local` (the
  default). `:local` uses the system time, as before, while `:aoc` uses the
  advent of code time zone (i.e. EST).

## 3.0.0

- `AOC.IEx` has been reworked.
  - All functions accept an `opts` keyword list used to specify year or day
    when needed.
  - `p1` and `p2` now accept puzzle input as an argument, making it easier to
    switch between different inputs or examples.
  - Introduce `p1e`, `p1i`, `p2e` and `p2i` to facilitate calling `p1` or `p2`
    with example or puzzle input.
  - Introduce wrapper functions `example_path/1`, `input_path/1`,
    `example_string/1`, `input_string/1`, `example_stream/1` and
    `input_stream/1` to facilitate experimentation inside iex.
- Update `AOC` documentation to reflect to new workflow.
- Update `mix aoc.gen` to generate a template more suited to new workflow.

## 2.0.2

- Pass user agent when using `mix aoc.get`

## 2.0.1

- Update ex_doc, add typepsecs to public functions.

## 2.0.0

- `input_string` and `example_string` now both call `String.trim_trailing/1` on
  the returned string.

## 1.1.0

- Download example input when using `mix aoc.get`.
- Add `example_*` functions to `AOC` module.

## 1.0.1

- Make `input_*` functions public (`def` instead of `defp`) to
  facilitate debugging.

## 1.0.0

- Initial stable release