class Roto
Attributes
errors[R]
files[RW]
rename_duplicates[RW]
types[RW]
Public Class Methods
new()
click to toggle source
# File lib/roto.rb, line 10 def initialize @files = [] @types = ['.mp4', '.mov', '.jpg', '.png', '.mts'] @rename_duplicates = true @errors = {} @logger = Logger.new(STDOUT) end
Public Instance Methods
copy_files(destination)
click to toggle source
# File lib/roto.rb, line 50 def copy_files(destination) progressbar = ProgressBar.create(total: @files.count, format: '%a %B %p%% %t') @files.each do |file| filename = File.basename(file) ext = File.extname(file) name = File.basename(file, ext) begin if File.exist?("#{destination}/#{filename}") && @rename_duplicates FileUtils.cp("#{file}", "#{destination}/#{name}_#{Time.now.to_i}#{ext}") else FileUtils.cp("#{file}", "#{destination}") end progressbar.increment rescue => error @errors[file] = error end end end
find_files(path)
click to toggle source
# File lib/roto.rb, line 18 def find_files(path) progressbar = ProgressBar.create(total: nil, format: "%a Finding Files") Find.find(path).each do |file| if @types.include?(File.extname(file).downcase) @files << file progressbar.increment end end @logger.info("Found: #{@files.count} files") self end
move_files(destination)
click to toggle source
# File lib/roto.rb, line 30 def move_files(destination) progressbar = ProgressBar.create(total: @files.count, format: '%a %B %p%% %t') @files.each do |file| filename = File.basename(file) ext = File.extname(file) name = File.basename(file, ext) begin if File.exist?("#{destination}/#{filename}") && @rename_duplicates FileUtils.mv("#{file}", "#{destination}/#{name}_#{Time.now.to_i}#{ext}") else FileUtils.mv("#{file}", "#{destination}") end progressbar.increment rescue => error @errors[file] = error end end self end