Refactoring ReleaseGroup model
This commit is contained in:
+13
-3
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
|
||||
module MusicBrainz
|
||||
module Parsers
|
||||
class Track < Base
|
||||
class << self
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user