Sha256: 5e06669ed43adbfea6f5dd81667c1661a51e9f170b3ed6c560b2f0592aec8570

Contents?: true

Size: 1.11 KB

Versions: 2

Compression:

Stored size: 1.11 KB

Contents

module Grooveshark
  class Song
    attr_reader :data
    attr_reader :id, :artist_id, :album_id
    attr_reader :name, :artist, :album, :track
    attr_reader :duraion, :artwork, :playcount
  
    def initialize(data=nil)
      unless data.nil?
        @data       = data
        @id         = data['song_id']
        @name       = data['song_name'] || data['name']
        @artist     = data['artist_name']
        @artist_id  = data['artist_id']
        @album      = data['album_name']
        @album_id   = data['album_id']
        @track      = data['track_num']
        @duration   = data['estimate_duration']
        @artwork    = data['cover_art_filename']
        @playcount  = data['song_plays']
      end
    end
    
    # Presentable format
    def to_s
      [@id, @name, @artist].join(' - ')
    end
    
    # Hash export for API usage
    def to_hash
      {
        'songID'      => @id,
        'songName'    => @name,
        'artistName'  => @artist,
        'artistID'    => @artist_id,
        'albumName'   => @album,
        'albumID'     => @album_id,
        'track'       => @track
      }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
grooveshark-0.2.1 lib/grooveshark/song.rb
grooveshark-0.2.0 lib/grooveshark/song.rb