Skip to content
An Elixir library for generating struct constructors that handle external data with ease.
Elixir
Latest commit 338ee52 Jun 22, 2016 @gamache gamache committed on GitHub Merge pull request #13 from appcues/feature/elixir-1.3
Elixir 1.3 compatibility

README.md

ExConstructor

wercker status Coverage Status Hex.pm Version

ExConstructor is an Elixir library that makes it easy to instantiate structs from external data, such as that emitted by a JSON parser.

Add use ExConstructor after a defstruct statement to inject a constructor function into the module.

The generated constructor, called new by default, handles map-vs-keyword-list, string-vs-atom-keys, and camelCase-vs-under_score input data issues automatically, DRYing up your code and letting you move on to the interesting parts of your program.

Example

defmodule TestStruct do
  defstruct field_one: nil,
            field_two: nil,
            field_three: nil,
            field_four: nil
  use ExConstructor
end

TestStruct.new(%{"field_one" => "a", "fieldTwo" => "b", :field_three => "c", :fieldFour => "d"})
# => %TestStruct{field_one: "a", field_two: "b", field_three: "c", field_four: "d"}

Full Documentation

Full ExConstructor documentation is available on Hexdocs.pm.

Authorship and License

ExConstructor is copyright 2016 Appcues, Inc.

ExConstructor is released under the MIT License.

Something went wrong with that request. Please try again.