ExConstructor

wercker statusHex.pm VersionCoverage Status

ExConstructor is an Elixir library which 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, 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.