class Torganiser::Arranger

Handles arranging episode files into a collection

Attributes

collection[R]
copy[R]
dry_run[R]

Public Class Methods

new(collection, dry_run: false, copy: false) click to toggle source
# File lib/torganiser/arranger.rb, line 8
def initialize(collection, dry_run: false, copy: false)
  @collection = collection
  @dry_run = dry_run
  @copy = copy
end

Public Instance Methods

arrange(file) click to toggle source
# File lib/torganiser/arranger.rb, line 14
def arrange(file)
  episode = EpisodeFile.new(file)
  arrange_episode(episode)
end

Private Instance Methods

arrange_episode(episode) click to toggle source
# File lib/torganiser/arranger.rb, line 21
def arrange_episode(episode)
  arrange_method.call episode.file, ensure_directory_for(episode)
end
arrange_method() click to toggle source
# File lib/torganiser/arranger.rb, line 31
def arrange_method
  @arrange_method ||= file_utils.method(@copy ? :cp : :mv)
end
ensure_directory_for(episode) click to toggle source
# File lib/torganiser/arranger.rb, line 25
def ensure_directory_for(episode)
  Destination.new(collection, episode).directory.tap do |dir|
    file_utils.mkdir_p dir unless File.exist? dir
  end
end
file_utils() click to toggle source
# File lib/torganiser/arranger.rb, line 35
def file_utils
  @file_utils ||= dry_run ? FileUtils::DryRun : FileUtils
end