Module: JimmyJukebox::HandleLoadJukeboxInput
- Defined in:
- lib/jimmy_jukebox/handle_load_jukebox_input.rb
Instance Method Summary collapse
- #artist_name(arg) ⇒ Object
- #display_genre_download_requires_n_message ⇒ Object
- #display_template(&msg) ⇒ Object
- #invalid_artist ⇒ Object
- #list_artists ⇒ Object
- #no_argv0 ⇒ Object
- #play_radio ⇒ Object
- #process_artist ⇒ Object
- #process_genre ⇒ Object
- #process_sample ⇒ Object
- #valid_artist?(arg) ⇒ Boolean
- #valid_genre?(arg) ⇒ Boolean
- #valid_integer?(arg) ⇒ Boolean
Instance Method Details
#artist_name(arg) ⇒ Object
60 61 62 |
# File 'lib/jimmy_jukebox/handle_load_jukebox_input.rb', line 60 def artist_name(arg) ARTISTS[arg.to_sym][:name] end |
#display_genre_download_requires_n_message ⇒ Object
97 98 99 100 101 102 103 104 |
# File 'lib/jimmy_jukebox/handle_load_jukebox_input.rb', line 97 def display_template { puts " You requested a sample of #{ARGV[0]} songs without specifying how many.\n\n" puts " Please try again but specify how many songs you wish to download.\n\n" puts " For example, to download 10 #{ARGV[0]} songs, type:\n\n" puts " load_jukebox #{ARGV[0]} 10" } end |
#display_template(&msg) ⇒ Object
89 90 91 92 93 94 95 |
# File 'lib/jimmy_jukebox/handle_load_jukebox_input.rb', line 89 def display_template(&msg) puts " ------------------------------------------------------------------------" puts " JimmyJukebox usage help\n\n" msg.call if msg puts " Full instructions: https://github.com/JamesLavin/jimmy_jukebox#readme" puts " ------------------------------------------------------------------------" end |
#invalid_artist ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/jimmy_jukebox/handle_load_jukebox_input.rb', line 30 def invalid_artist display_template { puts " No action taken in response to your command 'load_jukebox #{ARGV[0]}'.\n\n" puts " JimmyJukebox does not recognize '#{ARGV[0]}'.\n\n" puts " You must select a valid artist or genre.\n\n" puts " Valid genres:\n\n" puts " 'bluegrass'" puts " 'banjo'" puts " 'classical'" puts " 'jazz'" puts " 'rock'\n\n" puts " Valid artists include:\n\n" puts " 'bh' for Billie Holiday" puts " 'cb' for Count Basie" puts " 'lh' for Lionel Hampton.\n\n" puts " Please visit the link below for a complete list of valid artists.\n\n" } exit end |
#list_artists ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/jimmy_jukebox/handle_load_jukebox_input.rb', line 20 def list_artists display_template { puts " Artist symbol = Artist name (Genre)\n\n" ARTISTS.each do |k,v| puts " " + k.to_s.rjust(5) + ' = ' + prettified_artist_name(v[:name]) + ' (' + v[:genre].capitalize + ')' end puts "\n" } end |
#no_argv0 ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/jimmy_jukebox/handle_load_jukebox_input.rb', line 7 def no_argv0 display_template { puts " You must select an artist or genre to use 'load_jukebox'.\n\n" puts " Examples:\n\n" puts " load_jukebox at (to download Art Tatum)\n\n" puts " load_jukebox dr (to download Django Reinhardt)\n\n" puts " load_jukebox bluegrass (to download bluegrass)\n\n" puts " load_jukebox classical (to download classical)\n\n" puts " load_jukebox jazz (to download jazz)\n\n" } exit end |
#play_radio ⇒ Object
68 69 70 71 |
# File 'lib/jimmy_jukebox/handle_load_jukebox_input.rb', line 68 def play_radio require 'jimmy_jukebox/check_gems' require 'jimmy_jukebox/user_interface' end |
#process_artist ⇒ Object
73 74 75 76 77 78 79 |
# File 'lib/jimmy_jukebox/handle_load_jukebox_input.rb', line 73 def process_artist if valid_integer?(ARGV[1]) JimmyJukebox::SongLoader.new.send(artist_name(ARGV[0]), ARGV[1].to_i) else JimmyJukebox::SongLoader.new.send(artist_name(ARGV[0])) end end |
#process_genre ⇒ Object
81 82 83 84 85 86 87 |
# File 'lib/jimmy_jukebox/handle_load_jukebox_input.rb', line 81 def process_genre if valid_integer?(ARGV[1]) JimmyJukebox::SongLoader.new.download_sample_genre(ARGV[1].to_i, ARGV[0].upcase) else end end |
#process_sample ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/jimmy_jukebox/handle_load_jukebox_input.rb', line 106 def process_sample if ARGV[1].nil? JimmyJukebox::SongLoader.new.download_sample_genre(1) elsif valid_integer?(ARGV[1]) && valid_genre?(ARGV[2]) JimmyJukebox::SongLoader.new.download_sample_genre(ARGV[1].to_i, ARGV[2].upcase) elsif valid_genre?(ARGV[1]) && valid_integer?(ARGV[2]) JimmyJukebox::SongLoader.new.download_sample_genre(ARGV[2].to_i, ARGV[1].upcase) elsif valid_integer?(ARGV[1]) JimmyJukebox::SongLoader.new.download_sample_genre(ARGV[1].to_i) elsif valid_genre?(ARGV[1]) JimmyJukebox::SongLoader.new.download_sample_genre(1, ARGV[1].upcase) else JimmyJukebox::SongLoader.new.download_sample_genre(1) end end |
#valid_artist?(arg) ⇒ Boolean
50 51 52 |
# File 'lib/jimmy_jukebox/handle_load_jukebox_input.rb', line 50 def valid_artist?(arg) ARTISTS.has_key?(arg.to_sym) end |
#valid_genre?(arg) ⇒ Boolean
54 55 56 57 58 |
# File 'lib/jimmy_jukebox/handle_load_jukebox_input.rb', line 54 def valid_genre?(arg) # probably shouldn't hardcode these valid_genres = [/^BANJO$/i, /^BLUEGRASS$/i, /^CLASSICAL$/i, /^FOLK$/i, /^JAZZ$/i, /^JUGBAND$/i, /^ROCK$/i] valid_genres.any? { |g| g =~ arg } end |
#valid_integer?(arg) ⇒ Boolean
64 65 66 |
# File 'lib/jimmy_jukebox/handle_load_jukebox_input.rb', line 64 def valid_integer?(arg) arg && arg.to_i.is_a?(Integer) && arg.to_i > 0 end |