module MassRenamer::Free

Public Instance Methods

exclude_weird_filenames!(files) click to toggle source
# File lib/mass_renamer/free.rb, line 34
def exclude_weird_filenames! files
  files.reject! { |f| f = f.to_s; f.include?("\n") or f.start_with?(" ") }
end
filter_files!(files, filter) click to toggle source
# File lib/mass_renamer/free.rb, line 30
def filter_files! files, filter
  files.select! { |i| i.to_s[filter] } if filter
end
gather_files(dir, recursive: false, filter: nil) click to toggle source
# File lib/mass_renamer/free.rb, line 23
def gather_files(dir, recursive: false, filter: nil)
  files = gather_files_impl Pathname.new(dir), recursive
  filter_files! files, filter if filter
  exclude_weird_filenames! files
  files
end
gather_files_impl(dir, recursive) click to toggle source
# File lib/mass_renamer/free.rb, line 7
def gather_files_impl dir, recursive
  children = dir.children false
  sort_files! children
  if recursive
    children.collect! do |c|
      filepath = dir + c
      if filepath.directory?
        [filepath, gather_files_impl(filepath, recursive)]
      else
        filepath
      end
    end.flatten!
  end
  children
end
generate_file_to_edit(files) click to toggle source
# File lib/mass_renamer/free.rb, line 52
def generate_file_to_edit files
  res = ""
  files.each do |f|
    res << f.to_s << "\n\t" << f.to_s << "\n"
  end
  res
end
parse_renames(str) click to toggle source
# File lib/mass_renamer/free.rb, line 60
def parse_renames str
  lines = str.lines.map(&:chomp).reject { |l| l[/^\s*$/] }
  renames = []
  until lines.empty?
    filename = lines.shift
    targets = []
    while lines[0] and lines[0] =~ /^\s/
      targets << lines.shift.strip
    end
    renames << [filename, targets]
  end
  renames
end
sort_files!(files) click to toggle source
# File lib/mass_renamer/free.rb, line 38
def sort_files! files
  files.sort! do |a,b|
    if a.directory? and b.directory?
      a <=> b
    elsif a.directory?
      -1
    elsif b.directory?
      1
    else
      a <=> b
    end
  end
end