Refactoring ReleaseGroup model

This commit is contained in:
Gregory Eremin
2012-07-09 01:19:56 +04:00
parent ab78050fec
commit 7de2a66613
8 changed files with 87 additions and 56 deletions
+13 -3
View File
@@ -5,11 +5,21 @@ module MusicBrainz
def get_by_name(name)
case name
when :artist_model
return { :const => MusicBrainz::Parsers::Artist, :method => :model }
{ :const => MusicBrainz::Parsers::Artist, :method => :model }
when :artist_search
return { :const => MusicBrainz::Parsers::Artist, :method => :search }
{ :const => MusicBrainz::Parsers::Artist, :method => :search }
when :artist_release_groups
return { :const => MusicBrainz::Parsers::Artist, :method => :release_groups }
{ :const => MusicBrainz::Parsers::Artist, :method => :release_groups }
when :release_group_model
{ :const => MusicBrainz::Parsers::ReleaseGroup, :method => :model }
when :release_group_releases
{ :const => MusicBrainz::Parsers::ReleaseGroup, :method => :releases }
when :release_model
{ :const => MusicBrainz::Parsers::Release, :method => :model }
when :release_tracks
{ :const => MusicBrainz::Parsers::Release, :method => :tracks }
when :track_model
{ :const => MusicBrainz::Parsers::Track, :method => :model }
end
end
end
+20
View File
@@ -0,0 +1,20 @@
# -*- encoding: utf-8 -*-
module MusicBrainz
module Parsers
class Release < Base
class << self
def model(xml)
{
:id => safe_get_attr(xml, nil, "id") || safe_get_attr(xml, "release-group", "id"),
:title => safe_get_value(xml, "title"),
:status => safe_get_value(xml, "status"),
:country => safe_get_value(xml, "country"),
:format => safe_get_value(xml, "medium-list > medium > format"),
:date => safe_get_value(xml, "date")
}
end
end
end
end
end
+10 -2
View File
@@ -6,13 +6,21 @@ module MusicBrainz
class << self
def model(xml)
{
:id => safe_get_attr(xml, nil, "id"),
:type => safe_get_attr(xml, nil, "type"),
:id => safe_get_attr(xml, nil, "id") || safe_get_attr(xml, "release-group", "id"),
:type => safe_get_attr(xml, nil, "type") || safe_get_attr(xml, "release-group", "type"),
:title => safe_get_value(xml, "title"),
:disambiguation => safe_get_value(xml, "disambiguation"),
:first_release_date => safe_get_value(xml, "first-release-date")
}
end
def releases(xml)
releases = []
xml.css("release").each do |r|
releases << MusicBrainz::Parsers::Release.model(r)
end
releases
end
end
end
end
+11
View File
@@ -0,0 +1,11 @@
# -*- encoding: utf-8 -*-
module MusicBrainz
module Parsers
class Track < Base
class << self
end
end
end
end