lib/mikeplayer/playlist.rb in mikeplayer-1.0.3 vs lib/mikeplayer/playlist.rb in mikeplayer-1.0.4

- old
+ new

@@ -3,16 +3,15 @@ attr_reader :songs def initialize(filename) @filename = filename @songs = [] - @song_i = 0 @length = 0 load_songs - @loaded_song_count = @songs.size + @loaded_song_count = self.size end def <<(song) if ((true == File.file?(song)) && (false == @songs.any? { |s| s.filename == song })) @songs << Song.new(song) @@ -42,28 +41,14 @@ end return self end - def current - return @songs[@song_i] + def get(i) + return @songs[i] end - def next - @song_i += 1 - - return self.current - end - - def previous - @song_i -= 1 - - @song_i = 0 if @song_i < 0 - - return self.current - end - def shuffle! @songs.shuffle! return self end @@ -77,20 +62,20 @@ def name return File.basename(@filename, Settings::PL_FILE_ENDING) end def info - return "#{self.name} loaded #{@loaded_song_count} songs with length #{Song.as_duration_str(@length)}, added #{@songs.size - @loaded_song_count}" + return "#{self.name} loaded #{@loaded_song_count} songs with length #{Song.as_duration_str(@length)}, added #{self.size - @loaded_song_count}" end - def current_song_info - song_i_str = "#{@song_i + 1}".rjust(@songs.size.to_s.size) + def song_info(i) + song_i_str = "#{i + 1}".rjust(self.size.to_s.size) - return "Playing (#{song_i_str}/#{@songs.size}): #{current.info}".freeze + return "Playing (#{song_i_str}/#{self.size}): #{get(i).info}".freeze end - def finished? - return @song_i >= @songs.size + def size + return @songs.size end private def load_songs