Revision history for Perl extension MP3::M3U::Parser.

Time zone is GMT+2.

2.20 Sun Jun 18 03:58:36 2006
	=> SIGNATURE sent to oblivion :p
	=> Added Build.PL
	=> Updated Makefile.PL
	=> Updated tests
	=> Updated copyright & license
	=> Private methods (including template() & search())
	   renamed to include an initial underscore:
	      search() -> _search()
	      template -> _template()
	      etc.
	   Beware() if you->are('sub-classing');

2.1 Tue Sep 14 20:47:09 2004
	=> export() now has the ability to dump the generated data
	   to a scalar instead of exporting to a file. Useful for
	   web programming and dynamic generation. To enable this,
	   -toscalar option must be passed with a scalar ref.
	=> Module now require()s IO::File, File::Spec and Cwd if needed.
	   Because, we won't need this modules, if the user works with
	   scalars instead of disk files. This will save some memory 
	   and incerase speed I believe. If you are parsing scalar
	   data and do not use export(), then no external modules 
	   will be loaded.
	=> Updated HTML and XML templates for -toscalar compatibility.
	=> Updated Makefile.PL
	=> Updated pod.
	=> Added new tests to demonstrate -toscalar option.
	=> Added a CGI example code to distro.
	=> Some minor fixes.

2.01 Mon Jul 26 19:54:14 2004
	=> Minor fix in Pod.
	=> SONG element was including ".mp3" if it is 
	   extracted from PATH. Fixed.
	=> ARTIST element was including path info. Fixed.
	   But, if the song name or artist includes slash or backslash,
	   we have a problem

2.0 Fri Jul 23 23:19:48 2004
	=> BEWARE!!! THIS NEW VERSION BREAKS THE OLD CODE!
	=> Now the module looks *like* a module. It was
	   like a program code before. With this version
	   it does only the parsing job. 
	=> Removed directory reading codes. 
	=> Removed some parameters passed to new()
	=> Removed ignore chars thingies.
	=> Removed Dump() method.
	=> parse() now accepts file_paths/filehandles/scalars as 
	   parameters. You can mix and use these types together; the 
	   parser is now smart enough to do the right job with the 
	   related type.
	=> parse() now returns the object itself. 
	   Use the brand new result() method to get the parsed tree.
	   This new behaviour is a result of adding the chaining
	   ability of public methods.
	=> Object table structure and m3u key orders are changed.
	   Object table is now more complex and verbose.
	=> Returned result set is now an array not hash.
	=> Module now checks if the file is a valid m3u file, 
	   before parsing it. Dies if it is invalid.
	=> The new method reset() resets the parser object. Might
	   be usefull in loops. For example: you can export each
	   m3u to it's separate file with reset() without any extra work.
	=> The module no longer requires Data::Dumper, but it now requires
	   Cwd and Text::Template.
	=> Exported HTML file is now fully templated. You can subclass
	   the module and override template() method to change the HTML 
	   template. Currently, I'm not planning to add a template for 
	   XML type.
	=> Added new namespace MP3::M3U::Parser::Dummy for Text::Template.
	=> Added tcompile() method for compiling templates.
	=> drive key returned from info() is now an array.
	=> Added locate_file() method to get the full path of a file,
	   if the file is in the current working directory.
	=> Parser now tries to extract the artist and song infos into 
	   a separate data field.
	=> New option '-overwrite' added to new() and export(). It 
	   controls the behaviour of module in export() globally or 
	   locally depending on where you set it.
	=> export() checks if the export file already exists. Dies
	   if it exists and you didn't select to overwrite it.
	=> Pod updated.
	=> Subclassing examples added to Pod.
	=> You can now set the encoding of exported files 
	   from new() globally via -encoding option.
	=> You can now set the format of exported files from 
	   new() globally via -expformat option.
	=> You can now set the -drives option for export() from 
	   new() globally via -expdrives option.
	=> But parameters passed to export() has the priority.
	=> XML element names changed.

1.1 Mon Aug 25 21:42:31 2003
	=> Better XML escaping.
	=> Added '-ignore_chars' parameter.
	=> Fixed a bug in seconds()
	=> Moved module to ./lib/MP3/M3U in the 
	   distribution package.

1.04 Sun Jun 22 15:54:43 2003
	=> Removed sort() from export() method (the module was using 
	   it on the $self->{M3U}{$cd} object table). 
	   Thanks to Patrick Bourdon.

1.03 Tue Jun 10 22:38:53 2003
	=> HTML code is valid HTML 4.01 & valid CSS. But you can get 
	   "non SGML character number" errors if your list(s) have 
	   some of the undefined chars. I may add a filter to 
	   escape these in the future.
	=> Some minor fixes.

1.02 Mon Mar 10 22:33:04 2003
	=> Fixed the comma bug. Reported by Brandon Lederer.
	=> Fixed a bug in the formatting seconds part.
	=> Empty result keys (if a search didn't find any matches 
	   in a list for example) are ignored when exporting to xml.
	=> Fixed the html playlist (css code was wrong and only 
	   IE was displaying it correctly).
	=> Updated the POD.

1.01 Wed Feb 26 18:14:51 2003
	=> Fixed definition of Dump() in the POD. 
	=> Added the definition of the parsed data structure to 
	   the POD. 
	=> Added the test 't/use.t' to the distribution. Module's 
	   code didn't changed.

1.00 Tue Feb 25 19:23:14 2003
	=> First release.
