Sha256: 1ab0aae76006cfef40f391048517877c7dda5f9dfc4856c2f998fd8e1cb4b7b4
Contents?: true
Size: 1.35 KB
Versions: 1
Compression:
Stored size: 1.35 KB
Contents
require 'fileutils' module Tools module Actions class Transcode include Support::Execution def initialize(directory, formats = %w(V0 V2 320)) @directory = directory @formats = formats end def execute directory = @directory @formats.each do |bit| new_directory = copy_directory(directory, bit) Dir.chdir(new_directory) do Dir['*.flac'].each do |file| transcode(file, bit) FileUtils.rm(file) end end end end private def copy_directory(directory, bit) new_directory = directory.gsub(%r{(flac|FLAC)}, bit) FileUtils.cp_r(directory, new_directory) new_directory end def transcode(file, bitrate) preset = vbr?(bitrate) ? 'V' : 'b' cmd = Array.new cmd << %(flac) cmd << %(-cd) cmd << %("#{file}") cmd << %(|) cmd << %(lame) cmd << %(-#{preset}) cmd << cmd_bitrate(bitrate) cmd << %(-) cmd << %("#{File.basename(file).split('.')[0]}.mp3") cmd = cmd.join(' ') execute_command(cmd) end def vbr?(bitrate) bitrate.start_with?('V') end def cmd_bitrate(bitrate) vbr?(bitrate) ? bitrate[1..-1] : bitrate end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bt-tools-0.3.0 | lib/tools/actions/transcode.rb |