Sha256: 810feaff11b8b1eed0305df6f5a9bdcf8ea6ad247fca5d2658ec272a82cad94b

Contents?: true

Size: 1.25 KB

Versions: 2

Compression:

Stored size: 1.25 KB

Contents

module MetaSpotify
  class Track < MetaSpotify::Base
    
    URI_REGEX = /^spotify:track:[A-Za-z0-9]+$/
  
    attr_reader :album, :artists, :track_number, :length,
                :musicbrainz_id, :musicbrainz_uri, :allmusic_id, :allmusic_uri
    
    def initialize(hash)
      @name = hash['name']
      @uri = hash['href'] if hash.has_key? 'href'
      @popularity = hash['popularity'].to_f if hash.has_key? 'popularity'
      if hash.has_key? 'artist'
        @artists = []
        if hash['artist'].is_a? Array
          hash['artist'].each { |a| @artists << Artist.new(a) }
        else
          @artists << Artist.new(hash['artist'])
        end
      end
      @album = Album.new(hash['album']) if hash.has_key? 'album'
      @track_number = hash['track_number'].to_i if hash.has_key? 'track_number'
      @length = hash['length'].to_f if hash.has_key? 'length'
      
      if hash['id'].is_a? Array
        
        hash['id'].each do |id|
          case id.attributes['type']
            when 'mbid' then
              @musicbrainz_id = id
              @musicbrainz_uri = id.attributes['href']
            when 'amgid' then 
              @allmusic_id = id
              @allmusic_uri = id.attributes['href']
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
meta-spotify-0.1.6 lib/meta-spotify/track.rb
meta-spotify-0.1.5 lib/meta-spotify/track.rb