format/2 handles naked values
This commit is contained in:
parent
7a56f72b7c
commit
1a9d1908f0
2 changed files with 11 additions and 3 deletions
|
@ -84,8 +84,7 @@ start([{literal, Atom}], [], [], _Opts)
|
||||||
%% third parameter is a stack to match end_foos to start_foos
|
%% third parameter is a stack to match end_foos to start_foos
|
||||||
start(Forms, [], [], Opts) when is_list(Forms) ->
|
start(Forms, [], [], Opts) when is_list(Forms) ->
|
||||||
list_or_object(Forms, [], [], Opts);
|
list_or_object(Forms, [], [], Opts);
|
||||||
start(Forms, T, Stack, Opts) ->
|
start(Forms, T, Stack, Opts) -> ?error([Forms, T, Stack, Opts]).
|
||||||
?error([Forms, T, Stack, Opts]).
|
|
||||||
|
|
||||||
|
|
||||||
list_or_object([start_object|Forms], T, Stack, Opts) ->
|
list_or_object([start_object|Forms], T, Stack, Opts) ->
|
||||||
|
|
|
@ -83,7 +83,8 @@ extract_parser_opts([K|Rest], Acc) ->
|
||||||
|
|
||||||
fold(Event, {start, Acc, Opts}) ->
|
fold(Event, {start, Acc, Opts}) ->
|
||||||
case Event of
|
case Event of
|
||||||
start_object -> {[object_start], [Acc, ?start_object], Opts}
|
{Type, Value} -> {[], [Acc, encode(Type, Value)], Opts}
|
||||||
|
; start_object -> {[object_start], [Acc, ?start_object], Opts}
|
||||||
; start_array -> {[array_start], [Acc, ?start_array], Opts}
|
; start_array -> {[array_start], [Acc, ?start_array], Opts}
|
||||||
end;
|
end;
|
||||||
fold(Event, {[object_start|Stack], Acc, Opts}) ->
|
fold(Event, {[object_start|Stack], Acc, Opts}) ->
|
||||||
|
@ -154,18 +155,26 @@ basic_test_() ->
|
||||||
[
|
[
|
||||||
{"empty object", ?_assert(format(<<"{}">>, []) =:= <<"{}">>)},
|
{"empty object", ?_assert(format(<<"{}">>, []) =:= <<"{}">>)},
|
||||||
{"empty array", ?_assert(format(<<"[]">>, []) =:= <<"[]">>)},
|
{"empty array", ?_assert(format(<<"[]">>, []) =:= <<"[]">>)},
|
||||||
|
{"naked integer", ?_assert(format([{integer, 123}], []) =:= <<"123">>)},
|
||||||
|
{"naked float", ?_assert(format([{float, 1.23}], []) =:= <<"1.23">>)},
|
||||||
|
{"naked string", ?_assert(format(<<"\"hi\"">>, []) =:= <<"\"hi\"">>)},
|
||||||
|
{"naked literal", ?_assert(format(<<"true">>, []) =:= <<"true">>)},
|
||||||
{"simple object",
|
{"simple object",
|
||||||
?_assert(format(<<" { \"key\" :\n\t \"value\"\r\r\r\n } ">>,
|
?_assert(format(<<" { \"key\" :\n\t \"value\"\r\r\r\n } ">>,
|
||||||
[]
|
[]
|
||||||
) =:= <<"{\"key\":\"value\"}">>
|
) =:= <<"{\"key\":\"value\"}">>
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
{"really simple object",
|
||||||
|
?_assert(format(<<"{\"k\":\"v\"}">>, []) =:= <<"{\"k\":\"v\"}">>)
|
||||||
|
},
|
||||||
{"simple array",
|
{"simple array",
|
||||||
?_assert(format(<<" [\n\ttrue,\n\tfalse , \n \tnull\n] ">>,
|
?_assert(format(<<" [\n\ttrue,\n\tfalse , \n \tnull\n] ">>,
|
||||||
[]
|
[]
|
||||||
) =:= <<"[true,false,null]">>
|
) =:= <<"[true,false,null]">>
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
{"really simple array", ?_assert(format(<<"[1]">>, []) =:= <<"[1]">>)},
|
||||||
{"nested structures",
|
{"nested structures",
|
||||||
?_assert(format(
|
?_assert(format(
|
||||||
<<"[{\"key\":\"value\",
|
<<"[{\"key\":\"value\",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue