class MediaPlayer::PlayList

Attributes

current_index[R]
media[R]

Public Class Methods

new(media = []) click to toggle source
# File lib/playlist.rb, line 5
def initialize(media = [])
  @media = media
  @current_index = 0
end

Public Instance Methods

add(raw_media_file) click to toggle source
# File lib/playlist.rb, line 21
def add(raw_media_file)
  media_file = filter_input(raw_media_file)
  @media.push(media_file)
end
current_media() click to toggle source
# File lib/playlist.rb, line 26
def current_media
  @media[@current_index]
end
filter_input(raw_input) click to toggle source
# File lib/playlist.rb, line 10
def filter_input(raw_input)
  # weird :-O
  raw_input = raw_input.gsub("'", "\\\\'")
  raw_input = raw_input.gsub('"', '\"')
  raw_input = raw_input.gsub('&', '\\\&')
  regex = /[()\s]/
  raw_input.gsub regex do |match|
    match.gsub("#{match}", "\\#{match}")
  end
end
next_media() click to toggle source
# File lib/playlist.rb, line 30
def next_media
  @current_index += 1
  @current_index = 0 if @media.size == @current_index
  current_media
end
previous_media() click to toggle source
# File lib/playlist.rb, line 36
def previous_media
  @current_index -= 1
  @current_index = @media.size - 1 if @current_index < 0
  current_media
end
shuffle() click to toggle source
# File lib/playlist.rb, line 42
def shuffle
  old_current_media = current_media
  @media.shuffle!
  @current_index = @media.index(old_current_media)
end