Revision history for Web-DataService 0.42 2018-12-19 - Added method 'select_output_block' to request classes. - Added hook 'before_record_hook'. 0.41 2018-09-26 - Added methods 'validate_params', 'param_given', 'raw_body', 'decode_body', 'exception', 'skip_output_record', 'add_error', 'errors', 'add_caution', 'cautions' to request classes. - Added attribute 'http_method' to request classes. - Regularized hooks. 0.3 2016-01-13 - Pod parser has been rewritten as a subclass of Pod::Simple. If you are upgrading from an earlier version of Web::DataService you should update doc_defs.tt and dsdoc.css. Note that this new parser requires all command paragraphs to be preceded and followed by blank lines, whereas the earlier version was looser about it. - New Pod directives "=for wds_pod on", "=for wds_pod off" can be used to bracket content that should be included if the target format is Pod and ignored for other formats such as HTML. - New option 'diag' for running on the command line, 0.261 2015-06-22 - Documentation nodes are now automatically auto-instantiated if a template file exists. No need to explicitly create a node for each file. - New Pod directive "=for wds_node ..." sets node attributes, title in particular. This must appear in the first 2048 bytes of the template file. - Output fields with data_type => 'str' are now quoted in JSON output even if the value looks like a number. - Output records of type 'select' can now have an 'if_block' attribute. - Auto-generated links now default their link text to the node path without the base. - Bug fix: output plugin method 'emit_empty' was being called when it shouldn't have been. 0.26 2015-06-17 - Miscellaneous bug fixes: - Eliminated unnecessary dependency on $ENV{PWD}, which was causing problems because this variable is not always available. - URL generation in documentation pages now works properly with Pod format. - Fixed a bug that was causing links to be generated incorrectly if the link text was '0'. - Output block inclusion now works recursively. - Output fields with the 'dedup' option set now get a blank value in text output records. - You can now set 'doc_string' directly when defining set values. - New request method 'param_keys', which returns a list of keys corresponding to the parameters given in this request. - New request method 'exception', which generates an exception object. This can be passed to die() instead of a string. - Output plugins now include the method 'emit_empty', which is called if no output records were generated. 0.254 2015-03-18 - It is now possible to add aliases for the special parameters. - In Text format output, the field name "Starting Index" has been replaced by "Record Offset". - The following field names in Text format output no longer are followed by colons: "Records Found", "Records Returned", "Elapsed Time". 0.253 2014-12-21 - Added method 'delete_output_field' to remove a field from the output. This can be used by operation methods to remove fields that are determined to be unnecessary. This is especially useful for text-format output. - Fixed a bug that was causing single quotes to be improperly doubled in CSV output. 0.252 2014-11-07 - You can now specify a summary block for any operation, with the node attribute 'summary' - This block will be included in the output header, before any records are output - New request method 'document_summary' to document the list of fields - New request method 'summary_data' which takes a hash of fields with which the block will be filled in. - You can now specify extended documentation for a node, with the method 'extended_doc'. This can be used to specify the documentation that will appear at the top of an operation page, without having to create a custom template. - Added method 'map_value' which transforms a set value to its 'maps_to' value - The 'set_values' method now throws an exception if given an invalid set name - Fixed a bug that would wipe out the field lists of configured blocks if one bad block name was passed to 'configure_boock'. 0.251 2014-10-17 - Fixed a bug that was causing text output not to be properly encoded in some circumstances - Added format attribute 'encode_as_text' - Fixed a bug that caused the 'Access-Control-Allow-Origin' header to not be sent under some circumstances - Improved the documentation of the configuration process 0.25 2014-10-16 - Added documentation files that were accidentally left out of 0.24 - Added one missing module that was accidentally left out of 0.24 - The method 'generate_url' can now take a string instead of a hashref - Note: there were several incompatible changes between 0.23 and 0.24, so be careful if you are updating to this version from 0.23 or prior 0.24 2014-10-15 - Added Perl version check to Build.PL. The minimum version of Perl is 5.012 - There are several changes to this version that are not compatible with 0.23 - Changed the template element names for documentation sections (incompatible) - Added documentation for node lists - Reorganized the configuration documentation - Added node attribute 'place', and methods 'list_node', 'get_nodelist', 'document_nodelist' - Renamed method 'has_output_block' to 'has_block' (incompatible) - Renamed method 'response_format' to 'output_format' (incompatible) - Renamed method 'response_vocab' to 'output_vocab' (incompatible) - Renamed method 'response_linebreak' to 'output_linebreak' (incompatible) - Added method 'substitute_select' - Usage examples are now strings (incompatible) - Fixed bug that was ignoring ordinary paragraphs in ruleset documentation - Fixed bug that was causing documentation strings to be inherited 0.23 2014-10-03 - Improved the documentation some more - Removed spurious use of Sub::Identify - Fixed bug in evaluating set attributes starting with + or - - Fixed bug that prevented multiple validators in a parameter rule - Added set_foundation class method to set the foundation framework, removed the foundation_plugin attribute. 0.22 2014-10-02 - Fixed bad tests and improved the documentation. - new_request and execute_request can now be called as class methods. 0.21 2014-10-01 - First release that actually works and is fully documented.