reject invalid opts flags more strictly

This commit is contained in:
alisdair sullivan 2013-02-04 23:08:44 -08:00
parent eaba8c7b0f
commit 5efec8af8e
4 changed files with 42 additions and 142 deletions

View file

@ -59,10 +59,16 @@ parse_opts([labels|Rest], Opts) ->
parse_opts(Rest, Opts#opts{labels = binary});
parse_opts([{post_decode, F}|Rest], Opts=#opts{post_decode=false}) when is_function(F, 1) ->
parse_opts(Rest, Opts#opts{post_decode=F});
parse_opts([{post_decode, _}|_] = Options, Opts) ->
erlang:error(badarg, [Options, Opts]);
parse_opts([_|Rest], Opts) ->
parse_opts(Rest, Opts);
parse_opts([{K, _}|Rest] = Options, Opts) ->
case lists:member(K, jsx_utils:valid_flags()) of
true -> parse_opts(Rest, Opts)
; false -> erlang:error(badarg, [Options, Opts])
end;
parse_opts([K|Rest] = Options, Opts) ->
case lists:member(K, jsx_utils:valid_flags()) of
true -> parse_opts(Rest, Opts)
; false -> erlang:error(badarg, [Options, Opts])
end;
parse_opts([], Opts) ->
Opts.