Class: FileSorter::Sorter
- Inherits:
-
Object
- Object
- FileSorter::Sorter
- Defined in:
- lib/file_sorter/sorter.rb
Instance Attribute Summary collapse
-
#folder ⇒ Object
Returns the value of attribute folder.
-
#format ⇒ Object
Returns the value of attribute format.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Sorter
constructor
A new instance of Sorter.
- #revert ⇒ Object
- #start ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Sorter
Returns a new instance of Sorter.
7 8 9 10 |
# File 'lib/file_sorter/sorter.rb', line 7 def initialize( = {}) @folder = [:folder] || "." @format = [:format] || "%Y/%m/%d" end |
Instance Attribute Details
#folder ⇒ Object
Returns the value of attribute folder.
5 6 7 |
# File 'lib/file_sorter/sorter.rb', line 5 def folder @folder end |
#format ⇒ Object
Returns the value of attribute format.
5 6 7 |
# File 'lib/file_sorter/sorter.rb', line 5 def format @format end |
Instance Method Details
#revert ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/file_sorter/sorter.rb', line 24 def revert FileUtils.cd(@folder) do Dir["**/*"].each do |item| if File.file?(item) FileUtils.mv item, File.join(@folder, File.basename(item)) end end Dir["**/*"].each do |item| FileUtils.remove_dir(item) if File.directory?(item) end end end |
#start ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/file_sorter/sorter.rb', line 12 def start Dir.foreach(@folder) do |file| next if [".", ".."].include?(file) full_path = File.join(@folder, file) new_folder = File.join(@folder, File.mtime(full_path).strftime(@format)) FileUtils.mkdir_p new_folder FileUtils.mv full_path, File.join(new_folder, file) end end |