module Classifier

Classify elements in files or gems

Public Class Methods

classify(elements) click to toggle source
# File lib/require_smasher/classifier.rb, line 7
def classify(elements)
  elements.uniq!
  files = elements.select { |element| element_type(element) == :file }
  directories = (elements - files).select { |element| element_type(element) == :directory }
  gems = elements - files - directories
  files << directories.map { |directory| FileSmasher.files_by(directory) }
  { files: files.flatten, gems: gems }
end

Private Class Methods

element_type(element) click to toggle source
# File lib/require_smasher/classifier.rb, line 18
def element_type(element)
  return :directory if Dir.exist?(element)
  return :file if FileSmasher.file?(element)

  :gem
end