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 . => 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.