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
menu_prompt() click to toggle source
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