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

Time zone is GMT+2.

2.30 Thu Dec 31 04:39:58 2009

=> Perl::Critic refactoring.
=> HTML::Entities is now an optional dependency. => New tests.

2.24 Thu Sep 3 02:02:02 2009

=> Pod & distro fixes. Also correct a typo after __END__.

2.23 Thu Apr 23 14:50:16 2009

=> Update builder.

2.22 Sat Apr 18 06:23:24 2009

=> Update distro tools.

2.21 Sun Mar 29 08:20:01 2009

=> Fixed an issue related to network paths.

Reported by Paul Miller <jettero@cpan.org>. => Converted the distro files to LF from CRLF. => Updated test suite.
=> Test::More 0.40 is now required.

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.