Module: FileProcessor

Defined in:
lib/choose/file_processor.rb

Class Method Summary collapse

Class Method Details

.move!(original_dir, choosen_dir) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/choose/file_processor.rb', line 5

def self.move!(original_dir, choosen_dir)
  original_files = Dir["#{original_dir}/*"].map { |file| filename(file) }
  choosen_files = Dir["#{choosen_dir}/*"].map { |file| filename(file) }
  extra_files = original_files - choosen_files
  dst_dir = "extra"

  Dir["#{original_dir}/*"].select do |original_file|
    extra_files.include?(File.basename(original_file, '.*'))
  end.tap do |files|
    if files.any?
      FileUtils.mkdir_p(dst_dir)

      puts "Moving files:"
    else
      puts "Nothing to move!".colorize(:red)
    end
  end.each do |file|
    dst = "#{dst_dir}/#{File.basename(file)}"
    puts "  #{file} -> #{Dir.pwd}/#{dst}".colorize(:light_blue)
    FileUtils.mv(file, dst)
  end.tap do |files|
    if files.any?
      puts "#{files.size} file(s) moved to #{Dir.pwd}/extra folder".colorize(:green)
    end
  end
end