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