class Ejaydj::Playlist

Attributes

id[RW]
name[RW]
number_of_tracks[RW]
url[RW]
user_id[RW]

Public Class Methods

new(attributes={}) click to toggle source
# File lib/ejaydj/playlist.rb, line 14
def initialize(attributes={})
  instantiate_variables_from attributes
end

Public Instance Methods

next_track() click to toggle source
# File lib/ejaydj/playlist.rb, line 18
def next_track
  reload! if tracks.empty?
  track = tracks.pop
  track.playlist = self
  track
end
reload!() click to toggle source
# File lib/ejaydj/playlist.rb, line 29
def reload!
  @tracks = all_tracks
end
tracks() click to toggle source
# File lib/ejaydj/playlist.rb, line 25
def tracks
  @tracks ||= all_tracks
end

Private Instance Methods

all_tracks() click to toggle source
# File lib/ejaydj/playlist.rb, line 35
def all_tracks
  track_service.all.shuffle
end
track_service() click to toggle source
# File lib/ejaydj/playlist.rb, line 39
def track_service
  @track_service ||= Services::TrackService.new(
                                      music_client: @music_client,
                                      user_id: @user_id,
                                      playlist_id: @id)
end