class M3uGen::M3uGenerator

Public Instance Methods

default_filename() click to toggle source
# File lib/m3ugen/m3u_generator.rb, line 9
def default_filename
  "music.m3u"
end
generate(opts = {}) click to toggle source
# File lib/m3ugen/m3u_generator.rb, line 18
def generate(opts = {})
  def write_files(dir, files)
    File.open(dir + File::SEPARATOR + default_filename, 'w') { |f| f.write(files.join("\n")) }
  end

  files = scan

  if files.size != 0
    if opts[:recursive]

      dir_files = {}

      files.each do |f|
        dir_files[File.dirname(f)] ||= []
        dir_files[File.dirname(f)] << f
      end

      dir_files.each do  |dir_name,files|
        write_files(dir_name, files)
      end
    end

    write_files(Dir.pwd, files)
  else
    puts "No #{supported_extensions.join('|')} files found"
  end
end
scan() click to toggle source
# File lib/m3ugen/m3u_generator.rb, line 13
def scan
  extensions = supported_extensions.join(',')
  Dir["**/*.{#{extensions}}"].map! { |f| Dir.pwd + File::SEPARATOR + f }
end
supported_extensions() click to toggle source
# File lib/m3ugen/m3u_generator.rb, line 5
def supported_extensions
  %w[mp3 wav ogg wma]
end
write_files(dir, files) click to toggle source
# File lib/m3ugen/m3u_generator.rb, line 19
def write_files(dir, files)
  File.open(dir + File::SEPARATOR + default_filename, 'w') { |f| f.write(files.join("\n")) }
end