punt validity of naked values to user level, they are now always valid in decoding

This commit is contained in:
alisdair sullivan 2010-05-27 06:52:09 -07:00
parent 6e16ce0943
commit 6d90c49be3
3 changed files with 7 additions and 11 deletions

View file

@ -60,9 +60,6 @@ parse_opts([{comments, Value}|Rest], Opts) ->
parse_opts([{escaped_unicode, Value}|Rest], Opts) -> parse_opts([{escaped_unicode, Value}|Rest], Opts) ->
true = lists:member(Value, [ascii, codepoint, none]), true = lists:member(Value, [ascii, codepoint, none]),
parse_opts(Rest, Opts#opts{escaped_unicode = Value}); parse_opts(Rest, Opts#opts{escaped_unicode = Value});
parse_opts([{naked_values, Value}|Rest], Opts) ->
true = lists:member(Value, [true, false]),
parse_opts(Rest, Opts#opts{naked_values = Value});
parse_opts([{encoding, Value}|Rest], Opts) -> parse_opts([{encoding, Value}|Rest], Opts) ->
true = lists:member(Value, [utf8]), true = lists:member(Value, [utf8]),
parse_opts(Rest, Opts#opts{encoding = Value}); parse_opts(Rest, Opts#opts{encoding = Value});

View file

@ -24,7 +24,6 @@
-record(opts, { -record(opts, {
comments = false, comments = false,
escaped_unicode = ascii, escaped_unicode = ascii,
naked_values = false,
encoding = utf8 encoding = utf8
}). }).

View file

@ -43,19 +43,19 @@ start(<<?start_object, Rest/binary>>, Stack, Callbacks, Opts) ->
object(Rest, [key|Stack], fold(start_object, Callbacks), Opts); object(Rest, [key|Stack], fold(start_object, Callbacks), Opts);
start(<<?start_array, Rest/binary>>, Stack, Callbacks, Opts) -> start(<<?start_array, Rest/binary>>, Stack, Callbacks, Opts) ->
array(Rest, [array|Stack], fold(start_array, Callbacks), Opts); array(Rest, [array|Stack], fold(start_array, Callbacks), Opts);
start(<<?quote, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.naked_values == true -> start(<<?quote, Rest/binary>>, Stack, Callbacks, Opts) ->
string(Rest, Stack, Callbacks, Opts, []); string(Rest, Stack, Callbacks, Opts, []);
start(<<$t, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.naked_values == true -> start(<<$t, Rest/binary>>, Stack, Callbacks, Opts) ->
tr(Rest, Stack, Callbacks, Opts); tr(Rest, Stack, Callbacks, Opts);
start(<<$f, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.naked_values == true -> start(<<$f, Rest/binary>>, Stack, Callbacks, Opts) ->
fa(Rest, Stack, Callbacks, Opts); fa(Rest, Stack, Callbacks, Opts);
start(<<$n, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.naked_values == true -> start(<<$n, Rest/binary>>, Stack, Callbacks, Opts) ->
nu(Rest, Stack, Callbacks, Opts); nu(Rest, Stack, Callbacks, Opts);
start(<<?negative, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.naked_values == true -> start(<<?negative, Rest/binary>>, Stack, Callbacks, Opts) ->
negative(Rest, Stack, Callbacks, Opts, "-"); negative(Rest, Stack, Callbacks, Opts, "-");
start(<<?zero, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.naked_values == true -> start(<<?zero, Rest/binary>>, Stack, Callbacks, Opts) ->
zero(Rest, Stack, Callbacks, Opts, "0"); zero(Rest, Stack, Callbacks, Opts, "0");
start(<<S, Rest/binary>>, Stack, Callbacks, Opts) when ?is_nonzero(S), Opts#opts.naked_values == true -> start(<<S, Rest/binary>>, Stack, Callbacks, Opts) when ?is_nonzero(S) ->
integer(Rest, Stack, Callbacks, Opts, [S]); integer(Rest, Stack, Callbacks, Opts, [S]);
start(<<?solidus, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.comments == true -> start(<<?solidus, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.comments == true ->
maybe_comment(Rest, fun(Resume) -> start(Resume, Stack, Callbacks, Opts) end); maybe_comment(Rest, fun(Resume) -> start(Resume, Stack, Callbacks, Opts) end);