module FeedMethod

my try to dry

Public Instance Methods

feed(dir) click to toggle source
# File lib/dir_processor.rb, line 11
def feed dir
  return unless accept? dir

  # Copy/Paste:
  crap = proc { |x| x == '.' || x == '..' }

  Dir.chdir dir do
    this_dir = dir
    dir = '.'

  all = Dir.entries(dir).reject(&crap).group_by { |x| is_dir?(x) ? :dirs : :files } #long_name
  all_files = all[:files]
  all_dirs = all[:dirs]

  so2(:first).each do |processor|
    processor.feed this_dir
  end
  so2(:file).each do |processor|
    (all[:files] || []).each { |file| processor.feed file } # long_name(dir,file) }
  end
  so2(:dir).each do |processor|
    # require 'pry'; binding.pry
    (all[:dirs] || []).each do |f|
      processor.feed f #long_name(dir,f)
    end
  end

  end
end

Private Instance Methods

is_dir?(file) click to toggle source
# File lib/dir_processor.rb, line 45
def is_dir? file
  raise "file disappeared or did'nt exist..." unless File.exist? file
  File.directory? file
end
long_name(dir,file) click to toggle source
# File lib/dir_processor.rb, line 42
def long_name dir,file
  File.join(dir,file).sub /^\.\//, ''
end