class MusicBrainz::Artist

Attributes

artist_info[RW]
metadata[RW]
name[RW]
release_groups[RW]
releases[RW]
works[RW]

Public Class Methods

new(mbid, query=[]) click to toggle source
# File lib/musicbrainz/artist.rb, line 10
def initialize(mbid, query=[])
  #Valid sub-queries: artists, labels, recordings, release-groups
  @mbid=mbid.is_mbid ? mbid : false
  if query.present? && query!=[]
    @query=query.join("+")
  else
    @query='releases'
  end
  @method='artist'
  get_request(@method, @mbid, @query)
end

Public Instance Methods

get_info() click to toggle source
# File lib/musicbrainz/artist.rb, line 31
def get_info
  @artist_info={:type => @metadata['artist']['type'], :mbid => @metadata['artist']['id']}
end
get_release_groups() click to toggle source
# File lib/musicbrainz/artist.rb, line 43
def get_release_groups
  release_groups=@metadata['artist']['release_group_list']['release_group']
  @release_groups=Array.new
  release_groups.each do |r|
    @release_groups<<OpenStruct.new(r)
  end
end
get_releases() click to toggle source
# File lib/musicbrainz/artist.rb, line 35
def get_releases
  releases=@metadata['artist']['release_list']['release']
  @releases=Array.new
  releases.each do |r|
    @releases<<OpenStruct.new(r)
  end
end
get_request(method, mbid, query=[]) click to toggle source
# File lib/musicbrainz/artist.rb, line 22
def get_request(method, mbid, query=[])
  @request=self.class.get(method, mbid, query)
  @metadata=@request['metadata']
  get_releases if query.include?('releases')
  get_info if query.include?('info')
  get_release_groups if query.include?('release-groups')
  get_works if query.include?('works')
end
get_works() click to toggle source
# File lib/musicbrainz/artist.rb, line 51
def get_works
  works=@metadata['artist']['work_list']['work']
  @works=Array.new
  works.each do |r|
    @works<<OpenStruct.new(r)
  end
end