IndifferentAccess v0.1.3 IndifferentAccess.Plug View Source

Several modes of indifferent access can be configured via the opts passed in to a pipeline plug.

The default constructs a new IndifferentAccess.Params struct in place of Conn.params and Conn.query_params. That struct has two behaviors, the default where any map returned from its Access methods will also be a Params struct, or if strategy: :static is passed in here, it will only set the top level params as a struct and any returned values will be unchanged.

Alternatively, if you want to retain a bare map in your params, pass the option as: :map and it will recursively replace string keys with atom keys in params maps if the strings have existing atoms (also note you must call IndifferentAccess.initialize_atoms_map/0 for this behavior at app startup). Note that this option isn't truly "indifferent" and will only support atom access because it has replaced the strings with atoms as the keys.

There is another option that is not reccomended to also pass `strategy: :augment in addition to as: :map and it will leave string keys in place alongside additional atom keys pointing to the same value. Note this basically rendered enumeration on the map useless/confusion, and also makes updates to the map problematic as the two values will diverge.

Link to this section Summary

Link to this section Functions