Sha256: ebb2a7fc444f052afe627fa70239275c5ee23a420402a361bf04da33c77fe7b4
Contents?: true
Size: 1.46 KB
Versions: 1
Compression:
Stored size: 1.46 KB
Contents
# -*- encoding: utf-8 -*- module MusicBrainz class Artist < Base field :id, String field :type, String field :name, String field :country, String field :date_begin, Time field :date_end, Time field :urls, Hash def release_groups @release_groups ||= nil if @release_groups.nil? and !id.nil? @release_groups = self.class.load({ :parser => :artist_release_groups, :create_models => MusicBrainz::ReleaseGroup }, { :resource => :release_group, :artist => id }) @release_groups.sort!{ |a, b| a.first_release_date <=> b.first_release_date } end @release_groups end class << self def find(mbid) load({ :parser => :artist_model, :create_model => MusicBrainz::Artist }, { :resource => :artist, :id => mbid, :inc => [:url_rels] }) end def search(name) load({ :parser => :artist_search }, { :resource => :artist, :query => "artist:" << CGI.escape(name).gsub(/\!/, '\!'), :limit => 10 }) end def discography(mbid) artist = find(mbid) artist.release_groups.each { |rg| rg.releases.each { |r| r.tracks } } artist end def find_by_name(name) matches = search(name) matches.length.zero? ? nil : find(matches.first[:mbid]) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
musicbrainz-0.7.1 | lib/musicbrainz/artist.rb |