Error records were redefined:
o #yaml_invalid_option{}
o #yaml_parsing_error{}
An exception now has always the form:
#yaml_exception{errors = [
#yaml_invalid_option{} | #yaml_parsing_error{}
]}
This new #yaml_exception{} record is public and can be accessed
directly. But the yaml_errors module provides functions to get only
errors or warnings.
Errors are:
o s/simpl_estructs/simple_structs/.
o Line and columns in src/erlang_node_fun.erl must be greater than
or equal to 1.
o s/io_lib:flatten/lists:flatten/.
If a module was completely covered by a testsuite, it would mark the
coverage as "n/a" instead of "100%".
The fix is imported from the "bones" project.
The exception previously contained only the #yaml_parser_error record,
unlike other exceptions where the parser state was inside a
{yaml_parser, Parser} tuple.
Now, the #yaml_parser_error record is inside this tuple too.
The inet_parse:address/1 calls inet_parse:ipv4_address/1 function which
accepts (stringified) integers. For instance, "1" is parsed as {0,0,0,1}
and "256" is parsed as {0,0,1,0}.
Now, yaml_node_ipaddr calls inet_parse:ipv4strict_address/1 then
inet_parse:ipv6strict_address/1 directly. Integers are not accepted as
IP address anymore.
The percentage rounding was wrong: 76 was rounded to 70 instead of 75.
Moreover, we now round to the greated multiple of 5 (except for 0).
Therefore, 76 is now rounded to 80.
o Covered modules are now explicitly listed in each testsuite. This
permits to cover multiple modules by one testsuite.
o An index.html file is generated. It lists all testsuites and
their covered modules.
Those modules add standard tags/nodes, Erlang-specific nodes and a few
nodes specific to Yakaz. The latter will probably move to another place
or be standardized in any way.
The yaml_app module is an application behaviour used to check the
configuration. The yaml_sup module is a supervisor behaviour only
included because an application must start a supervision tree.
This option must be specified like this:
{default_tags, [
{Prefix, Value}
]}
Prefix may be:
o {non_specific, "!"} or {non_specific, "?"}
o a string
Value must be a string.
The parser would crash if a coma (',') was found outside a flow context.
This is now fixed.
While here, improve errors handling API. Now, when an exception is
thrown, the parser is insde a {yaml_parser, Parser} tuple. Thus, the
caller doesn't need to rely on the #yaml_parser record to identify the
exception and therefore, the definition of this record remains private.