class AudioAddict::Commands::VoteCmd
Public Instance Methods
run()
click to toggle source
# File lib/audio_addict/commands/vote.rb, line 20 def run needs :network, :channel, :session_key vote_mode == :now ? vote_now : vote_past end
Private Instance Methods
get_user_track()
click to toggle source
# File lib/audio_addict/commands/vote.rb, line 56 def get_user_track options = tracks.map { |t| ["#{t.artist.ljust max_artist_len} > #{t.title}", t] }.to_h options = { "Cancel" => :cancel }.merge options prompt.select "Track:", options, symbols: { marker: ">" } end
get_user_vote()
click to toggle source
# File lib/audio_addict/commands/vote.rb, line 62 def get_user_vote vote_style == :menu ? menu_prompt : simple_prompt end
max_artist_len()
click to toggle source
# File lib/audio_addict/commands/vote.rb, line 52 def max_artist_len tracks.map { |t| t.artist.size }.max end
send_vote(vote, track = nil)
click to toggle source
# File lib/audio_addict/commands/vote.rb, line 42 def send_vote(vote, track = nil) say "Voting... " current_channel.vote vote, track: track resay "!txtgrn!Voted" end
simple_prompt()
click to toggle source
# File lib/audio_addict/commands/vote.rb, line 72 def simple_prompt like = prompt.yes? "Vote?" like ? :up : :cancel end
tracks()
click to toggle source
# File lib/audio_addict/commands/vote.rb, line 48 def tracks @tracks ||= current_channel.track_history end
vote_mode()
click to toggle source
# File lib/audio_addict/commands/vote.rb, line 81 def vote_mode args["--past"] ? :past : :now end
vote_now()
click to toggle source
# File lib/audio_addict/commands/vote.rb, line 35 def vote_now NowCmd.new(args).run puts "" vote = get_user_vote send_vote vote unless vote == :cancel end
vote_past()
click to toggle source
# File lib/audio_addict/commands/vote.rb, line 27 def vote_past track = get_user_track unless track == :cancel vote = get_user_vote send_vote vote, track unless vote == :cancel end end
vote_style()
click to toggle source
# File lib/audio_addict/commands/vote.rb, line 77 def vote_style args["--all"] ? :menu : :simple end