Sorting, tests

This commit is contained in:
Gregory Eremin
2011-09-14 16:30:52 +04:00
parent b10abcf67c
commit 78418e9325
7 changed files with 47 additions and 44 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ module MusicBrainz
@release_groups << MusicBrainz::ReleaseGroup.parse_xml(rg)
end
end
@release_groups
@release_groups.sort{ |a, b| a.first_release_date <=> b.first_release_date }
end
def self.find mbid
+10 -11
View File
@@ -10,7 +10,7 @@ module MusicBrainz
@tracks << MusicBrainz::Track.parse_xml(r)
end
end
@tracks
@tracks.sort{ |a, b| a.position <=> b.position }
end
def self.find mbid
@@ -23,17 +23,16 @@ module MusicBrainz
@release.id = xml.attr('id')
@release.title = xml.css('title').text unless xml.css('title').empty?
@release.status = xml.css('status').text unless xml.css('status').empty?
date = nil
date = xml.css('date').text unless xml.css('date').empty?
unless date.nil? or date.empty?
if date.length == 4
date += '-01-01'
elsif date.length == 7
date += '-01'
end
date = Time.parse(date)
date = xml.css('date').empty? ? '9999-12-31' : xml.css('date').text
if date.length == 0
date = '9999-12-31'
elsif date.length == 4
date += '-12-31'
elsif date.length == 7
date += '-31'
end
@release.date = date
date = date.split('-')
@release.date = Time.utc(date[0], date[1], date[2])
@release.country = xml.css('country').text unless xml.css('country').empty?
@release
end
+13 -13
View File
@@ -1,6 +1,6 @@
module MusicBrainz
class ReleaseGroup
attr_accessor :id, :type, :title, :first_release_date
attr_accessor :id, :type, :title, :disambiguation, :first_release_date
@releases
def releases
@@ -10,7 +10,7 @@ module MusicBrainz
@releases << MusicBrainz::Release.parse_xml(r)
end
end
@releases
@releases.sort{ |a, b| a.date <=> b.date }
end
def self.find mbid
@@ -22,18 +22,18 @@ module MusicBrainz
@release_group = MusicBrainz::ReleaseGroup.new
@release_group.id = xml.attr('id')
@release_group.type = xml.attr('type')
@release_group.title = xml.css('title').text unless xml.css('title').empty?
date = nil
date = xml.css('first-release-date').text unless xml.css('first-release-date').empty?
unless date.nil? or date.empty?
if date.length == 4
date += '-01-01'
elsif date.length == 7
date += '-01'
end
date = Time.parse(date)
@release_group.title = xml.css('title').text
@release_group.disambiguation = xml.css('disambiguation').empty? ? '' : xml.css('disambiguation').text
date = xml.css('first-release-date').empty? ? '9999-12-31' : xml.css('first-release-date').text
if date.length == 0
date = '9999-12-31'
elsif date.length == 4
date += '-12-31'
elsif date.length == 7
date += '-31'
end
@release_group.first_release_date = date
date = date.split('-')
@release_group.first_release_date = Time.utc(date[0], date[1], date[2])
@release_group
end
end