Sha256: 82e038e5cab23e89a39e2759b3694b32b7f71824208769d3ac85c9d9e0a0f982

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

class Metamuse::Services::Lastfm::Artist
  attr_reader :name, :mbid, :url, :images, :listeners, :playcount, :similar_artists, :tags, :biography, :biography_summary

  include ::Metamuse::InstanceInitialize

  def self.build(response)
    data = response['lfm']['artist']
    new data
  end

  def initialize(attrs={})
    @similar_artists = []
    @images = []
    super
  end

  def bio=(bio)
    @biography = bio['content']
    @biography_summary = bio['summary']
  end

  def images=(urls)
    urls.each do |url|
      @images << Metamuse::Services::Lastfm::Image.new(url) if url.is_a? String
    end
  end
  alias image= images=

  def best_guess
    valid? ? self : similar_artists.first
  end

  def similar_artists=(attrs={})
    attrs['artist'].each do |artist_attrs|
      @similar_artists << self.class.new(artist_attrs)
    end
  end
  alias similar= similar_artists=

  def stats=(stats)
    @playcount = stats['playcount']
    @listeners = stats['listeners']
  end

  def valid?
    url !~ %r(/music/\+noredirect/)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sandro-metamuse-0.1.2 lib/metamuse/services/lastfm/artist.rb