class ItunesApi::Music::Results::Song

Wrapper for song search results.

Public Instance Methods

album() click to toggle source
# File lib/itunes_api/music/results/song.rb, line 10
def album
  @album ||= data['collectionName']
end
artist() click to toggle source
# File lib/itunes_api/music/results/song.rb, line 14
def artist
  @artist ||= data['artistName']
end
attributes() click to toggle source
# File lib/itunes_api/music/results/song.rb, line 18
def attributes
  [
    album,
    artist,
    duration,
    explicitness,
    genre,
    link,
    name,
    number,
    preview,
    store,
    streamable,
    track_id
  ]
end
duration() click to toggle source
# File lib/itunes_api/music/results/song.rb, line 35
def duration
  @duration ||= track_lenght(data['trackTimeMillis'])
end
explicitness() click to toggle source
# File lib/itunes_api/music/results/song.rb, line 39
def explicitness
  @explicitness ||= data['trackExplicitness']
end
genre() click to toggle source
# File lib/itunes_api/music/results/song.rb, line 43
def genre
  @genre ||= data['primaryGenreName']
end
name() click to toggle source
# File lib/itunes_api/music/results/song.rb, line 51
def name
  @name ||= data['trackName']
end
number() click to toggle source
# File lib/itunes_api/music/results/song.rb, line 55
def number
  @number ||= data['trackNumber']
end
preview() click to toggle source
# File lib/itunes_api/music/results/song.rb, line 59
def preview
  @preview ||= data['previewUrl']
end
streamable() click to toggle source
# File lib/itunes_api/music/results/song.rb, line 63
def streamable
  @streamable ||= data['isStreamable']
end
track_id() click to toggle source
# File lib/itunes_api/music/results/song.rb, line 67
def track_id
  @track_id ||= data['trackId']
end

Private Instance Methods

track_lenght(milliseconds) click to toggle source
# File lib/itunes_api/music/results/song.rb, line 73
def track_lenght(milliseconds)
  if milliseconds.to_i.positive?
    minutes, milliseconds = milliseconds.divmod(1000 * 60)
    seconds = milliseconds / 1000
    "#{minutes}:#{seconds}"
  else
    '-:--'
  end
end