[Module]
Name=HTML::Parser::Simple
Changelog.Creator=Module::Metadata::Changes V 2.05
Changelog.Parser=Config::IniFiles V 2.78

[V 2.01]
Date=2013-10-08T09:36:00
Comments= <<EOT
- Incorporate repository references in Build.PL and Makefile.PL, from dsteinbrunner via github. Thanx.
- Add 'use strict' and 'use warnings' to Build.PL and Makefile.PL, which I'm doing with all patched modules.
- Add 'lib' to pre-preqs in Build.PL and Makefile.PL.
- Take this opportunity to switch from Moos to Moo, which I'm doing with all patched modules.
- Rename CHANGES to Changes as per CPAN::Changes::Spec.
EOT

[V 2.00]
Date=2012-11-19T12:34:00
Comments= <<EOT
- Implement a new API, using the pure-Perl module Moos.
- The use of Moos means methods which could previously be called as class methods
or instance methods must now only be called as instance methods.
- The use of Moos means new() now takes a hash, not a hashref. See scripts/*.pl.
- Details of the new API:
---------------------------------------
HTML::Parser::Simple:
New Old
Mutators Getters and Setters
---------------------------------------
block() -
current_node() get_current_node(), set_current_node()
depth() get_depth(), set_depth()
empty() -
inline() -
input_file() get_input_dir(), set_input_dir()
node_type() get_node_type(), set_node_type()
output_file() get_output_dir(), set_output_dir()
root() get_root(), set_root()
tagged_attribute() -
verbose() get_verbose(), set_verbose()
xhtml() get_xhtml(), set_xhtml()
---------------------------------------
HTML::Parser::Simple::Attributes:
New Old
Mutators Getters and Setters
---------------------------------------
a_hashref() -
a_string() -
get() get_attr()
hashref2string() -
parse() parse_attributes()
string2hashref() -
---------------------------------------
- HTML::Parser::Simple::Reporter is a new module. See scripts/parse.attributes.pl.
- Change calls from Carp::croak to die. You should be using Try::Tiny anyway :-).
- Change the fix in V 1.07 which output tags and attributes in lower-case.
As of V 2.00, tags are in lower-case but the case of attributes is preserved.
- Scripts shipped in scripts/:
Name					Module
o parse.attributes.pl	HTML::Parser::Simple::Reporter
o parse.html.pl			HTML::Parser::Simple
o parse.xhtml.pl		HTML::Parser::Simple
- Sample data used by the scripts:
Name					Input							Output
o parse.attributes.pl	data/s.1.html					Screen
o parse.html.pl			data/s.1.html					data/s.2.html
o parse.xhtml.pl		t/data/90.xml.declaration.xhtml	data/90.xml.declaration.xml
- Add t/parse.html.t, t/parse.xhtml.t, t/traverse.file.t.
- Make many changes to the docs.
EOT

[V 1.07]
Date=2012-11-18T12:06:00
Comments= <<EOT
- Replace /usr/bin/perl with /usr/bin/env perl.
- Replace common::sense with use strict and use warnings, to get uninit var warnings.
- Fix bug whereby code was assuming all tags were in the same case.
This lead to the error: Can't locate object method "getParent" via package "root"...
Due to the fix, the code now outputs all tags and attributes as lower-case.
Thanx to Satya Nemana for reporting this problem (via private email).
- Clean up the POD.
EOT

[V 1.06]
Date=2011-02-05T15:57:00
Comments= <<EOT
- Fix a bug where, if the 2nd or subsequent attribute had an empty string for the value,
the code looped forever. Eg: name="a name" value="". For RT#65466.
- Add corresponding test t/empty_attribute.t.
- Clean up the code where the length of the attribute string was tested before spaces were trimmed.
- Reformatted the source code and POD.
EOT

[V 1.05]
Date=2010-02-21T12:55:17
Comments= <<EOT
- Remove text 'All rights reserved' (for Debian licensing).
- Remove POD heads 'Required Modules' and 'Changes'.
EOT

[V 1.04]
Date=2010-01-25T09:37:00
Comments= <<EOT
- Add MANIFEST and MYMETA.yml
- Require Perl 5.6. Thanx to 'cpanservice' via GitHub
- Reformat this CHANGES file
- Remove trailing spaces from various files
EOT

[V 1.03]
Date=2009-06-12T11:49:00
Comments= <<EOT
- Improved tests and documentation (Mark Stosberg)
- Added attribute parsing via HTML::Parser::Simple::Attributes (Mark Stosberg)
EOT

[V 1.02]
Date=2009-02-26T11:24:00
Comments= <<EOT
- Rename scripts/parse.file.pl to scripts/parse.html.pl
- Ship scripts/parse.xhtml.pl
- Ship t/Data.pm to read in test data from t/data/
- Rewrite t/*.t to use t/Data.pm
- Patch Simple.pm to accept xhtml as a parameter to new
- Patch Simple.pm to use xhtml in a few of places. XHTML support is not finished!
- Patch Simple.pm to use accessors for object attributes as per PBP. Specifically:
get/set_*() for current_node, depth, input_dir, node_type, output_dir, root, verbose, xhtml
- Hence, rename root() to get_root()
- Hence, rename verbose() to get_verbose()
- Rename new_node() to create_new_node(), since that makes more sense when using get/set_*()
- There are no methods get_result() and set_result(). The reason is efficiency. If we had
$self -> set_result($self -> get_result() + '<tag>') it would mean duplicating the result so far
each time a few chars were added
- Ship various tests, with data, for XHTML
- Add depth to the hashref of data for each tag's node in the tree
- Put the code in github: git://github.com/ronsavage/html--parser--simple.git
EOT

[V 1.01]
Date=2009-02-25T19:44:00
Comments= <<EOT
- Add Tree::Simple to Build.PL and Makefile.PL
- Patch POD to replace note about required module Tree::DAG_Node with Tree::Simple
EOT

[V 1.00]
Date=2009-02-18T11:22:00
Comments=- Original version
