diff --git a/lib/musicbrainz/bindings/release.rb b/lib/musicbrainz/bindings/release.rb index 86be769..f00bd90 100644 --- a/lib/musicbrainz/bindings/release.rb +++ b/lib/musicbrainz/bindings/release.rb @@ -6,6 +6,7 @@ module MusicBrainz hash = { id: (xml.attribute('id').value rescue nil), + type: (xml.xpath('./release-group').attribute('type').value rescue nil), title: (xml.xpath('./title').text rescue nil), status: (xml.xpath('./status').text rescue nil), country: (xml.xpath('./country').text rescue nil), diff --git a/lib/musicbrainz/models/release.rb b/lib/musicbrainz/models/release.rb index 065d137..8262838 100644 --- a/lib/musicbrainz/models/release.rb +++ b/lib/musicbrainz/models/release.rb @@ -1,6 +1,7 @@ module MusicBrainz class Release < BaseModel field :id, String + field :type, String field :title, String field :status, String field :format, String @@ -20,7 +21,7 @@ module MusicBrainz class << self def find(id) - client.load(:release, { id: id, inc: [:media] }, { + client.load(:release, { id: id, inc: [:media, :release_groups] }, { binding: :release, create_model: :release }) diff --git a/lib/musicbrainz/models/release_group.rb b/lib/musicbrainz/models/release_group.rb index ec8215e..2e1e24b 100644 --- a/lib/musicbrainz/models/release_group.rb +++ b/lib/musicbrainz/models/release_group.rb @@ -9,7 +9,7 @@ module MusicBrainz alias_method :disambiguation, :desc def releases - @releases ||= client.load(:release, { release_group: id, inc: [:media], limit: 100 }, { + @releases ||= client.load(:release, { release_group: id, inc: [:media, :release_groups], limit: 100 }, { binding: :release_group_releases, create_models: :release, sort: :date diff --git a/spec/models/release_group_spec.rb b/spec/models/release_group_spec.rb index d4ad0b8..4656198 100644 --- a/spec/models/release_group_spec.rb +++ b/spec/models/release_group_spec.rb @@ -60,6 +60,7 @@ describe MusicBrainz::ReleaseGroup do releases.first.title.should == "Empire" releases.first.date.should == Date.new(2006, 8, 28) releases.first.country.should == "GB" + releases.first.type.should == "Album" end end end diff --git a/spec/models/release_spec.rb b/spec/models/release_spec.rb index ffea3a6..066d09c 100644 --- a/spec/models/release_spec.rb +++ b/spec/models/release_spec.rb @@ -24,6 +24,7 @@ describe MusicBrainz::Release do release.asin.should == 'B002NOYX6I' release.barcode.should == '602527197692' release.quality.should == 'normal' + release.type.should == 'Album' end it "gets correct release tracks" do