The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Build.PL 11
Changes 03
META.yml 3838
lib/WebService/MusicBrainz/Artist.pm 11
lib/WebService/MusicBrainz/Label.pm 11
lib/WebService/MusicBrainz/Query.pm 11
lib/WebService/MusicBrainz/Release.pm 11
lib/WebService/MusicBrainz/ReleaseGroup.pm 11
lib/WebService/MusicBrainz/Response/Alias.pm 11
lib/WebService/MusicBrainz/Response/AliasList.pm 11
lib/WebService/MusicBrainz/Response/Artist.pm 11
lib/WebService/MusicBrainz/Response/ArtistList.pm 11
lib/WebService/MusicBrainz/Response/Disc.pm 11
lib/WebService/MusicBrainz/Response/DiscList.pm 11
lib/WebService/MusicBrainz/Response/ISRC.pm 11
lib/WebService/MusicBrainz/Response/ISRCList.pm 11
lib/WebService/MusicBrainz/Response/Label.pm 11
lib/WebService/MusicBrainz/Response/LabelList.pm 11
lib/WebService/MusicBrainz/Response/Metadata.pm 11
lib/WebService/MusicBrainz/Response/Puid.pm 11
lib/WebService/MusicBrainz/Response/PuidList.pm 11
lib/WebService/MusicBrainz/Response/Rating.pm 11
lib/WebService/MusicBrainz/Response/Relation.pm 11
lib/WebService/MusicBrainz/Response/RelationList.pm 11
lib/WebService/MusicBrainz/Response/Release.pm 11
lib/WebService/MusicBrainz/Response/ReleaseEvent.pm 11
lib/WebService/MusicBrainz/Response/ReleaseEventList.pm 11
lib/WebService/MusicBrainz/Response/ReleaseGroup.pm 11
lib/WebService/MusicBrainz/Response/ReleaseGroupList.pm 11
lib/WebService/MusicBrainz/Response/ReleaseList.pm 11
lib/WebService/MusicBrainz/Response/Tag.pm 11
lib/WebService/MusicBrainz/Response/TagList.pm 11
lib/WebService/MusicBrainz/Response/Track.pm 11
lib/WebService/MusicBrainz/Response/TrackList.pm 11
lib/WebService/MusicBrainz/Response/UserRating.pm 11
lib/WebService/MusicBrainz/Response/UserTag.pm 11
lib/WebService/MusicBrainz/Response/UserTagList.pm 11
lib/WebService/MusicBrainz/Response.pm 25
lib/WebService/MusicBrainz/Track.pm 11
lib/WebService/MusicBrainz.pm 11
t/Release.t 010
41 files changed (This is a version diff) 7793
@@ -14,7 +14,7 @@ my $build = Module::Build->new
                  },
      create_makefile_pl => 'traditional',
      dist_author => 'Bob Faist <bob.faist@gmail.com>',
-     dist_version => '0.92',
+     dist_version => '0.93',
      meta_merge => {
         resources => {
            repository => 'git://github.com/bfaist/webservice-musicbrainz.git'
@@ -118,3 +118,6 @@ Revision history for Perl extension WebService::MusicBrainz.
 
 0.92 Sat Nov 1st 2009
 	- Fixed failing test in Release.t
+
+0.93 Fri Nov 27th 2009
+	- Release event lists are now sorted from earliest to the most recent
@@ -1,6 +1,6 @@
 ---
 name: WebService-MusicBrainz
-version: 0.92
+version: 0.93
 author:
   - 'Bob Faist <bob.faist@gmail.com>'
 abstract: Web service API to MusicBrainz database
@@ -18,115 +18,115 @@ requires:
 provides:
   WebService::MusicBrainz:
     file: lib/WebService/MusicBrainz.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Artist:
     file: lib/WebService/MusicBrainz/Artist.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Label:
     file: lib/WebService/MusicBrainz/Label.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Query:
     file: lib/WebService/MusicBrainz/Query.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Release:
     file: lib/WebService/MusicBrainz/Release.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::ReleaseGroup:
     file: lib/WebService/MusicBrainz/ReleaseGroup.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response:
     file: lib/WebService/MusicBrainz/Response.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::Alias:
     file: lib/WebService/MusicBrainz/Response/Alias.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::AliasList:
     file: lib/WebService/MusicBrainz/Response/AliasList.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::Artist:
     file: lib/WebService/MusicBrainz/Response/Artist.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::ArtistList:
     file: lib/WebService/MusicBrainz/Response/ArtistList.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::Disc:
     file: lib/WebService/MusicBrainz/Response/Disc.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::DiscList:
     file: lib/WebService/MusicBrainz/Response/DiscList.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::ISRC:
     file: lib/WebService/MusicBrainz/Response/ISRC.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::ISRCList:
     file: lib/WebService/MusicBrainz/Response/ISRCList.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::Label:
     file: lib/WebService/MusicBrainz/Response/Label.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::LabelList:
     file: lib/WebService/MusicBrainz/Response/LabelList.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::Metadata:
     file: lib/WebService/MusicBrainz/Response/Metadata.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::Puid:
     file: lib/WebService/MusicBrainz/Response/Puid.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::PuidList:
     file: lib/WebService/MusicBrainz/Response/PuidList.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::Rating:
     file: lib/WebService/MusicBrainz/Response/Rating.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::Relation:
     file: lib/WebService/MusicBrainz/Response/Relation.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::RelationList:
     file: lib/WebService/MusicBrainz/Response/RelationList.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::Release:
     file: lib/WebService/MusicBrainz/Response/Release.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::ReleaseEvent:
     file: lib/WebService/MusicBrainz/Response/ReleaseEvent.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::ReleaseEventList:
     file: lib/WebService/MusicBrainz/Response/ReleaseEventList.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::ReleaseGroup:
     file: lib/WebService/MusicBrainz/Response/ReleaseGroup.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::ReleaseGroupList:
     file: lib/WebService/MusicBrainz/Response/ReleaseGroupList.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::ReleaseList:
     file: lib/WebService/MusicBrainz/Response/ReleaseList.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::Tag:
     file: lib/WebService/MusicBrainz/Response/Tag.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::TagList:
     file: lib/WebService/MusicBrainz/Response/TagList.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::Track:
     file: lib/WebService/MusicBrainz/Response/Track.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::TrackList:
     file: lib/WebService/MusicBrainz/Response/TrackList.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::UserRating:
     file: lib/WebService/MusicBrainz/Response/UserRating.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::UserTag:
     file: lib/WebService/MusicBrainz/Response/UserTag.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Response::UserTagList:
     file: lib/WebService/MusicBrainz/Response/UserTagList.pm
-    version: 0.92
+    version: 0.93
   WebService::MusicBrainz::Track:
     file: lib/WebService/MusicBrainz/Track.pm
-    version: 0.92
+    version: 0.93
 generated_by: Module::Build version 0.280801
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.2.html
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Artist;
 use strict;
 use WebService::MusicBrainz::Query;
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Label;
 use strict;
 use WebService::MusicBrainz::Query;
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -6,7 +6,7 @@ use URI;
 use URI::Escape;
 use WebService::MusicBrainz::Response;
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Release;
 use strict;
 use WebService::MusicBrainz::Query;
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::ReleaseGroup;
 use strict;
 use WebService::MusicBrainz::Query;
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::Alias;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::AliasList;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::Artist;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::ArtistList;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::Disc;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::DiscList;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::ISRC;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::ISRCList;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::Label;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::LabelList;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::Metadata;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::Puid;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::PuidList;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::Rating;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::Relation;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::RelationList;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::Release;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::ReleaseEvent;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::ReleaseEventList;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::ReleaseGroup;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::ReleaseGroupList;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::ReleaseList;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::Tag;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::TagList;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::Track;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::TrackList;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::UserRating;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::UserTag;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response::UserTagList;
 use strict;
 use base 'Class::Accessor';
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Response;
 use strict;
 use XML::LibXML;
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -698,7 +698,10 @@ sub _create_release_event_list {
        push @events, $event;
    }
 
-   $release_event_list->events( \@events );
+   # should use a date object here but cheating with cmp to reduce dependencies for now...
+   my @sorted_events = sort { $a->date() cmp $b->date() } @events;
+
+   $release_event_list->events( \@sorted_events );
 
    return $release_event_list;
 }
@@ -3,7 +3,7 @@ package WebService::MusicBrainz::Track;
 use strict;
 use WebService::MusicBrainz::Query;
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -2,7 +2,7 @@ package WebService::MusicBrainz;
 
 use strict;
 
-our $VERSION = '0.92';
+our $VERSION = '0.93';
 
 =head1 NAME
 
@@ -40,8 +40,18 @@ foreach my $release (@{ $rel_title_rel_list->releases() }) {
         ok($release->artist()->name() eq "Van Halen", 'release by title rel artist NAME');
         ok($release->disc_list()->count() > 10, 'release by title rel disc list COUNT');
         ok($release->track_list()->count() > 10, 'release by title rel track list COUNT');
+        my $last_date = "0000-00-00";
+        my $sorted = 1;
         foreach my $event (@{ $release->release_event_list()->events() }) {
+            if($last_date le $event->date()) {
+                $sorted = 1;
+            } else {
+                $sorted = 0;
+                last;
+            }
+            $last_date = $event->date();
         }
+        ok($sorted == 1,'release by title sorted release events');
     }
 }