Sha256: 69acbe4557f8a67acffee89b3efe6b2dd0cccb944dc85dce372c8ede7c676e44

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

# Grooveshark module
module Grooveshark
  # Song class
  class Song
    attr_reader :data
    attr_reader :id, :artist_id, :album_id
    attr_reader :name, :artist, :album, :track, :year
    attr_reader :duration, :artwork, :playcount

    def initialize(data = nil)
      return if 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']
      @year       = data['year']
    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

3 entries across 3 versions & 1 rubygems

Version Path
grooveshark-0.2.14 lib/grooveshark/song.rb
grooveshark-0.2.13 lib/grooveshark/song.rb
grooveshark-0.2.12 lib/grooveshark/song.rb