rename 'sloppy_existing_atom' to 'attempt_atom'
This commit is contained in:
parent
5dd62e27b5
commit
fe2bd15184
2 changed files with 11 additions and 10 deletions
|
@ -467,7 +467,7 @@ decode(JSON, Opts) -> Term
|
|||
JSON = json_text()
|
||||
Term = json_term()
|
||||
Opts = [option() | labels | {labels, Label} | {post_decode, F}]
|
||||
Label = binary | atom | existing_atom | sloppy_existing_atom
|
||||
Label = binary | atom | existing_atom | attempt_atom
|
||||
F = fun((any()) -> any())
|
||||
```
|
||||
|
||||
|
@ -477,10 +477,11 @@ term
|
|||
the option `labels` controls how keys are converted from json to
|
||||
erlang terms. `binary` (the default behavior) does no conversion
|
||||
beyond normal escaping. `atom` converts keys to erlang atoms and
|
||||
results in a badarg error if the keys fall outside the range of erlang
|
||||
results in a `badarg` error if the keys fall outside the range of erlang
|
||||
atoms. `existing_atom` is identical to `atom` except it will not add
|
||||
new atoms to the atom table. `sloppy_existing_atom` will convert keys
|
||||
to atoms when they exist, and leave them as binary otherwise
|
||||
new atoms to the atom table and will result in a `badarg` error if the atom
|
||||
does not exist. `attempt_atom` will convert keys to atoms when they exist,
|
||||
and leave them as binary otherwise
|
||||
|
||||
`{post_decode, F}` is a user defined function of arity 1 that is called on each
|
||||
output value (objects, arrays, strings, numbers and literals). it may return any
|
||||
|
|
|
@ -53,7 +53,7 @@ to_term(Source, Config) when is_list(Config) ->
|
|||
parse_config(Config) -> parse_config(Config, #config{}).
|
||||
|
||||
parse_config([{labels, Val}|Rest], Config)
|
||||
when Val == binary; Val == atom; Val == existing_atom; Val == sloppy_existing_atom ->
|
||||
when Val == binary; Val == atom; Val == existing_atom; Val == attempt_atom ->
|
||||
parse_config(Rest, Config#config{labels = Val});
|
||||
parse_config([labels|Rest], Config) ->
|
||||
parse_config(Rest, Config#config{labels = binary});
|
||||
|
@ -107,7 +107,7 @@ format_key(Key, Config) ->
|
|||
binary -> Key
|
||||
; atom -> binary_to_atom(Key, utf8)
|
||||
; existing_atom -> binary_to_existing_atom(Key, utf8)
|
||||
; sloppy_existing_atom ->
|
||||
; attempt_atom ->
|
||||
try binary_to_existing_atom(Key, utf8) of
|
||||
Result -> Result
|
||||
catch
|
||||
|
@ -140,8 +140,8 @@ config_test_() ->
|
|||
parse_config([{labels, existing_atom}])
|
||||
)},
|
||||
{"sloppy existing atom labels", ?_assertEqual(
|
||||
#config{labels=sloppy_existing_atom},
|
||||
parse_config([{labels, sloppy_existing_atom}])
|
||||
#config{labels=attempt_atom},
|
||||
parse_config([{labels, attempt_atom}])
|
||||
)},
|
||||
{"post decode", ?_assertEqual(
|
||||
#config{post_decode=F},
|
||||
|
@ -167,11 +167,11 @@ format_key_test_() ->
|
|||
)},
|
||||
{"sloppy existing atom key", ?_assertEqual(
|
||||
key,
|
||||
format_key(<<"key">>, #config{labels=sloppy_existing_atom})
|
||||
format_key(<<"key">>, #config{labels=attempt_atom})
|
||||
)},
|
||||
{"nonexisting atom key", ?_assertEqual(
|
||||
<<"nonexistentatom">>,
|
||||
format_key(<<"nonexistentatom">>, #config{labels=sloppy_existing_atom})
|
||||
format_key(<<"nonexistentatom">>, #config{labels=attempt_atom})
|
||||
)}
|
||||
].
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue