class Ejaydj::Dj
Constants
- PLAYLIST_SCHEDULE
Attributes
late_night_playlists[RW]
morning_playlists[RW]
music_client[RW]
music_client_id[RW]
music_client_secret[RW]
music_user_id[RW]
night_playlists[RW]
noon_playlists[RW]
Public Class Methods
new(attributes={}) { |self| ... }
click to toggle source
# File lib/ejaydj/dj.rb, line 26 def initialize(attributes={}) instantiate_variables_from attributes yield self if block_given? end
Public Instance Methods
play_me_a_song(time: Time.now)
click to toggle source
# File lib/ejaydj/dj.rb, line 31 def play_me_a_song(time: Time.now) current_playlist(time).next_track end
playlists()
click to toggle source
# File lib/ejaydj/dj.rb, line 35 def playlists @playlists ||= all_playlists end
reload!()
click to toggle source
# File lib/ejaydj/dj.rb, line 39 def reload! @playlists = all_playlists @playlists.each(&:reload!) end
Private Instance Methods
all_playlists()
click to toggle source
# File lib/ejaydj/dj.rb, line 58 def all_playlists playlist_service.all end
current_playlist(time)
click to toggle source
# File lib/ejaydj/dj.rb, line 46 def current_playlist(time) playlist_name = scheduled_playlist(time.strftime('%k%M').to_i) playlist = playlists.find do |playlist| playlist.name == playlist_name end end
playlist_service()
click to toggle source
# File lib/ejaydj/dj.rb, line 62 def playlist_service @playlist_service ||= Services::PlaylistService.new( music_client: music_client, user_id: music_user_id) end
scheduled_playlist(time)
click to toggle source
# File lib/ejaydj/dj.rb, line 53 def scheduled_playlist(time) scheduled_playlists = PLAYLIST_SCHEDULE.select {|sched| sched.cover? time}.values[0] send(scheduled_playlists).sample end