Digger

Build Status Code Climate Coverage Status Hex.pm Hex.pm Downloads Deps Status Inline docs GitHub stars GitHub license

Description

Digger is a collection of helpers to help you operate on nested maps (it will also work on non-nested maps). Elixir gives you a great collection of map methods, but sometimes I find myself having to rewrite the same operations specifically for nested maps.

This library is intended to help your code stay DRY.

Possible Future Work

This library is a work in progress. I'm thinking about extending it to lists and/or tuples.

Here is a list of helper modules/methods Digger gives you:

1 - Digger.Atomizer

The Problem

You have a nested map (or a struct that you converted to a nested map) with keys that are not atoms and you want to convert those keys to atoms. Typically, I've had this issue with maps with string keys.

The Solution: Digger.Atomizer

Digger.Atomizer drills down into a nested map and converts (most) keys which are not atoms into atoms.

2 - Digger.Stringifier

The Problem

You have a nested map (or a struct that you converted to a nested map) with keys that are atoms and you want to convert those keys to strings.

The Solution: Digger.Atomizer

Digger.Atomizer drills down into a nested map and converts (most) keys which are not strings into strings.

Installation

If available in Hex, the package can be installed by adding digger to your list of dependencies in mix.exs:

def deps do
[
{:digger, "~> 0.2.0"}
]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/digger.