jimmy_jukebox 0.4.6 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/bin/play_jukebox CHANGED
@@ -5,27 +5,19 @@ $running_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && RUBY_ENGIN
5
5
  if $running_jruby
6
6
  begin
7
7
  require 'spoon'
8
- require 'readline'
9
8
  rescue LoadError => e
10
9
  if e.message =~ /spoon/
11
10
  p "*** You must run 'gem install spoon' before using JimmyJukebox on JRuby ***"
12
11
  exit
13
- elsif e.message =~ /readline/
14
- p "*** You must install 'readline' to use JimmyJukebox on JRuby ***"
15
- exit
16
12
  else
17
13
  raise
18
14
  end
19
15
  end
20
16
  else
21
17
  begin
22
- require 'readline'
23
18
  require 'posix/spawn'
24
19
  rescue LoadError => e
25
- if e.message =~ /readline/
26
- p "*** You must install 'readline' or the 'rb-readline' gem to use JimmyJukebox in Ruby ***"
27
- exit
28
- elsif e.message =~ /posix/ || e.message =~ /spawn/
20
+ if e.message =~ /posix/ || e.message =~ /spawn/
29
21
  p "*** You must run 'gem install posix-spawn' before using JimmyJukebox in Ruby ***"
30
22
  exit
31
23
  else
@@ -31,6 +31,7 @@ module Artists
31
31
  m: { genre: 'CLASSICAL', name: "mendelssohn"},
32
32
  md: { genre: 'JAZZ', name: "miles_davis"},
33
33
  odjb: { genre: 'JAZZ', name: "original_dixieland_jazz_band"},
34
+ op: { genre: 'JAZZ', name: "oscar_peterson"},
34
35
  rt: { genre: 'JAZZ', name: "ragtime"},
35
36
  rn: { genre: 'JAZZ', name: "red_norvo"},
36
37
  fs: { genre: 'CLASSICAL', name: "franz_schubert"},
@@ -136,6 +136,7 @@ module JimmyJukebox
136
136
  self.songs_played << song
137
137
  current_song.play(user_config, self)
138
138
  p "Finished playing"
139
+ p '-------------------------------------'
139
140
  self.current_song = nil
140
141
  self.playing = false
141
142
  rescue Song::SongTerminatedPrematurelyException
@@ -125,7 +125,6 @@ module JimmyJukebox
125
125
  p "Now playing '#{music_file}'"
126
126
  p "Press Ctrl-C to stop the music and exit this program"
127
127
  run_command(player, music_file)
128
- p "playing_pid = " + playing_pid.to_s
129
128
  Process.waitpid(playing_pid) # Waits for a child process to exit, returns its process id, and sets $? to a Process::Status object
130
129
  $? # return Process::Status object with instance methods .stopped?, .exited?, .exitstatus
131
130
  end
@@ -0,0 +1,3 @@
1
+ ---
2
+ - http://archive.org/download/BudPowell-UnPocoLoco/14.Track14.mp3
3
+ - http://archive.org/download/BudPowell-SomebodyLovesMe/BudPowell-SomebodyLovesMe.mp3
@@ -0,0 +1,3 @@
1
+ ---
2
+ - http://archive.org/download/CecilTaylor-Conquistador/01-Conquistador.mp3
3
+ - http://archive.org/download/OtekiCaz27.05.2012/OtekiCaz20120527.
@@ -1,4 +1,27 @@
1
1
  ---
2
+ - http://archive.org/download/BirthOfTheCool/01-Move2.32.mp3
3
+ - http://archive.org/download/BirthOfTheCool/02-Jeru3.11.mp3
4
+ - http://archive.org/download/BirthOfTheCool/03-MoonDreams3.18.mp3
5
+ - http://archive.org/download/BirthOfTheCool/04-VenusDeMilo3.10.mp3
6
+ - http://archive.org/download/BirthOfTheCool/05-Budo2.33.mp3
7
+ - http://archive.org/download/BirthOfTheCool/06-Deception2.47.mp3
8
+ - http://archive.org/download/BirthOfTheCool/07-Godchild3.08.mp3
9
+ - http://archive.org/download/BirthOfTheCool/08-Boplicity2.59.mp3
10
+ - http://archive.org/download/BirthOfTheCool/09-Rocker3.04.mp3
11
+ - http://archive.org/download/BirthOfTheCool/10-Israel2.16.mp3
12
+ - http://archive.org/download/BirthOfTheCool/11-Rouge3.13.mp3
13
+ - http://archive.org/download/BirthOfTheCool/12-DarnThatDream3.22.mp3
14
+ - http://archive.org/download/BirthOfTheCool/13-BirthOfTheCoolTheme0.17.mp3
15
+ - http://archive.org/download/BirthOfTheCool/14-SymphonySidAnnoucesTheBand1.02.mp3
16
+ - http://archive.org/download/BirthOfTheCool/15-Move3.40.mp3
17
+ - http://archive.org/download/BirthOfTheCool/16-WhyILoveYou3.40.mp3
18
+ - http://archive.org/download/BirthOfTheCool/17-Godchild5.49.mp3
19
+ - http://archive.org/download/BirthOfTheCool/18-SymphonySidIntroduction0.25.mp3
20
+ - http://archive.org/download/BirthOfTheCool/19-SilVousPlait4.23.mp3
21
+ - http://archive.org/download/BirthOfTheCool/20-MoonDreams3.05.mp3
22
+ - http://archive.org/download/BirthOfTheCool/21-Budo3.24.mp3
23
+ - http://archive.org/download/BirthOfTheCool/22-DarnThatDream4.23.mp3
24
+ - http://archive.org/download/BirthOfTheCool/23-Move4.47.mp3
2
25
  - http://archive.org/download/MilesDavisPortia/MilesDavis-Tutu-03.Portia.mp3
3
26
  - http://archive.org/download/MilesDavisAtCarnegieHall/01-SoWhat.mp3
4
27
  - http://archive.org/download/MilesDavisAtCarnegieHall/01-SomedayMyPrinceWillCome.mp3
@@ -0,0 +1,3 @@
1
+ ---
2
+ - http://archive.org/download/JustAGigolo/TheloniousMonk-02-JustAGigolotake1.mp3
3
+ -
@@ -0,0 +1,11 @@
1
+ ---
2
+ - http://archive.org/download/OscarPetersonTrio-BagsGroove/04-bagsGroove.mp3
3
+ - http://archive.org/download/EllaFitzgeraldOscarPeterson/107MeanToMe.mp3
4
+ - http://archive.org/download/EllaFitzgeraldOscarPeterson/108HowLongHasThisBeenGoingOn.mp3
5
+ - http://archive.org/download/EllaFitzgeraldOscarPeterson/109WhenYourLoverHasGone.mp3
6
+ - http://archive.org/download/EllaFitzgeraldOscarPeterson/110MoreThanYouKnow.mp3
7
+ - http://archive.org/download/EllaFitzgeraldOscarPeterson/111TheresALullInMyLife.mp3
8
+ - http://archive.org/download/EllaFitzgeraldOscarPeterson/112MidnightSun.mp3
9
+ - http://archive.org/download/OscarPeterson-InTheStillOfTheNight/01-InTheStillOfTheNight.mp3
10
+ - http://archive.org/download/BenWebster-colemanHawkins-oscarPeterson-ItNeverEnteredMyMind/BenWebster-colemanHawkins-oscarPeterson-ItNeverEnteredMyMind.mp3
11
+ - http://archive.org/download/ZappologyMr.Chops./Mr.Chops..mp3
@@ -1,11 +1,11 @@
1
- module JimmyJukebox
1
+ require 'fileutils'
2
2
 
3
- class UserConfig
3
+ require 'jimmy_jukebox/artists'
4
+ include Artists
4
5
 
5
- require 'fileutils'
6
+ module JimmyJukebox
6
7
 
7
- require 'jimmy_jukebox/artists'
8
- include Artists
8
+ class UserConfig
9
9
 
10
10
  attr_writer :music_directories
11
11
  attr_accessor :songs, :ogg_player, :mp3_player
@@ -30,6 +30,14 @@ module JimmyJukebox
30
30
  File.expand_path(File.join("~","Music"))
31
31
  end
32
32
 
33
+ def jazz_dir
34
+ default_music_dir + '/JAZZ'
35
+ end
36
+
37
+ def classical_dir
38
+ default_music_dir + '/CLASSICAL'
39
+ end
40
+
33
41
  def set_music_players
34
42
  set_ogg_player
35
43
  set_mp3_player
@@ -64,11 +72,6 @@ module JimmyJukebox
64
72
  self.ogg_player = "mplayer -nolirc -noconfig all"
65
73
  elsif play_exists?
66
74
  self.ogg_player = "play"
67
- #elsif RUBY_PLATFORM.downcase.include?('mac') || RUBY_PLATFORM.downcase.include?('darwin')
68
- # ogg_player = "afplay"
69
- # return
70
- #elsif (require 'rbconfig') && ['mac','darwin'].include?(RbConfig::CONFIG['host_os'])
71
- # ogg_player = "afplay"
72
75
  end
73
76
  end
74
77
 
@@ -89,11 +92,6 @@ module JimmyJukebox
89
92
  self.mp3_player = "mplayer -nolirc -noconfig all"
90
93
  elsif play_exists?
91
94
  self.mp3_player = "play"
92
- #elsif RUBY_PLATFORM.downcase.include?('mac') || RUBY_PLATFORM.downcase.include?('darwin')
93
- # mp3_player = "afplay"
94
- # return
95
- #elsif (require 'rbconfig') && ['mac','darwin'].include?(RbConfig::CONFIG['host_os'])
96
- # mp3_player = "afplay"
97
95
  end
98
96
  end
99
97
 
@@ -143,6 +141,10 @@ module JimmyJukebox
143
141
  # puts "ARGV: " + ARGV.inspect + " (" + ARGV.class.to_s + ")"
144
142
  if ARGV.empty?
145
143
  music_directories << default_music_dir
144
+ elsif ARGV[0].strip =~ /^jazz$/i
145
+ music_directories << jazz_dir
146
+ elsif ARGV[0].strip =~ /^classical$/i
147
+ music_directories << classical_dir
146
148
  elsif ARTISTS.keys.include?(ARGV[0].to_sym)
147
149
  music_directories << default_music_dir + artist_key_to_subdir_name(ARGV[0].to_sym)
148
150
  elsif is_a_txt_file?(ARGV[0])
@@ -1,4 +1,14 @@
1
- require 'readline'
1
+ require 'io/console'
2
+
3
+ if $running_jruby
4
+ class IO
5
+ def getch
6
+ raw do
7
+ getc
8
+ end
9
+ end
10
+ end
11
+ end
2
12
 
3
13
  jj = Jukebox.new
4
14
 
@@ -8,8 +18,6 @@ end
8
18
 
9
19
  user_input_thread = Thread.new do
10
20
 
11
- stty_save = `stty -g`.chomp # Store state of the terminal
12
-
13
21
  def display_options
14
22
  p "'p' = (un)pause, 'q' = quit, 'r' = replay previous song, 's' = skip this song, 'e' = erase this song"
15
23
  end
@@ -25,8 +33,7 @@ user_input_thread = Thread.new do
25
33
  begin
26
34
  loop do
27
35
  display_options_after_delay
28
- line = Readline.readline('> ', true)
29
- case line.strip
36
+ case STDIN.getch
30
37
  when "q", "Q"
31
38
  raise Interrupt
32
39
  when "e", "E"
@@ -54,7 +61,6 @@ user_input_thread = Thread.new do
54
61
  rescue Interrupt, SystemExit => e
55
62
  p "JimmyJukebox closed by user request. Bye!"
56
63
  jj.quit
57
- system('stty', stty_save) unless $running_jruby # Restore original terminal state
58
64
  exit
59
65
  end
60
66
  end
@@ -1,4 +1,4 @@
1
1
  module JimmyJukebox
2
- VERSION = '0.4.6'
2
+ VERSION = '0.4.7'
3
3
  DATE = '2013-02-27'
4
4
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: jimmy_jukebox
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.4.6
5
+ version: 0.4.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - James Lavin
@@ -147,6 +147,7 @@ files:
147
147
  - lib/jimmy_jukebox/songs/ColemanHawkins.yml
148
148
  - lib/jimmy_jukebox/songs/KingOliver.yml
149
149
  - lib/jimmy_jukebox/songs/OriginalDixielandJazzBand.yml
150
+ - lib/jimmy_jukebox/songs/OscarPeterson.yml
150
151
  - lib/jimmy_jukebox/songs/Dixieland.yml
151
152
  - lib/jimmy_jukebox/songs/LouisArmstrong.yml
152
153
  - lib/jimmy_jukebox/songs/DjangoReinhardt.yml
@@ -157,6 +158,7 @@ files:
157
158
  - lib/jimmy_jukebox/songs/BixBeiderbecke.yml
158
159
  - lib/jimmy_jukebox/songs/ArtieShaw.yml
159
160
  - lib/jimmy_jukebox/songs/MilesDavis.yml
161
+ - lib/jimmy_jukebox/songs/BudPowell.yml
160
162
  - lib/jimmy_jukebox/songs/CliffordHayesJugBlowers.yml
161
163
  - lib/jimmy_jukebox/songs/DizzyGillespie.yml
162
164
  - lib/jimmy_jukebox/songs/DukeEllington.yml
@@ -170,9 +172,11 @@ files:
170
172
  - lib/jimmy_jukebox/songs/Vivaldi.yml
171
173
  - lib/jimmy_jukebox/songs/Beethoven.yml
172
174
  - lib/jimmy_jukebox/songs/JamesPJohnson.yml
175
+ - lib/jimmy_jukebox/songs/CecilTaylor.yml
173
176
  - lib/jimmy_jukebox/songs/JellyRollMorton.yml
174
177
  - lib/jimmy_jukebox/songs/Chopin.yml
175
178
  - lib/jimmy_jukebox/songs/Ragtime.yml
179
+ - lib/jimmy_jukebox/songs/Monk.yml
176
180
  - lib/jimmy_jukebox/songs/EarlHines.yml
177
181
  - spec/jimmy_jukebox_spec.rb
178
182
  - spec/song_loader_spec.rb