Class: AnimeRenamer::Renamer
- Inherits:
-
Object
- Object
- AnimeRenamer::Renamer
- Defined in:
- lib/anime_renamer.rb
Instance Method Summary collapse
- #change_name(file, new_name) ⇒ Object
- #get_file_with_extension(dir, ext) ⇒ Object
- #rename(original, name, digits = 2) ⇒ Object
- #run(args) ⇒ Object
Instance Method Details
#change_name(file, new_name) ⇒ Object
24 25 26 27 |
# File 'lib/anime_renamer.rb', line 24 def change_name(file, new_name) ext = File.extname file File.rename(file, "#{new_name}#{ext}") end |
#get_file_with_extension(dir, ext) ⇒ Object
19 20 21 22 |
# File 'lib/anime_renamer.rb', line 19 def get_file_with_extension(dir, ext) Dir.glob(dir).select {|file| File.extname(file) == ext} end |
#rename(original, name, digits = 2) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/anime_renamer.rb', line 29 def rename(original, name, digits = 2) ext = File.extname original basename = File.basename original, ext basename.sub! /\[.*\]/, "" basename.sub! /\(.*\)/, "" episode, _ = basename.match(/\A.*[^\.0-9]([0-9]{1,#{digits}})[^\.0-9].*\z/i)&.captures point5, _ = basename.match(/\A.*[^0-9]([0-9]{1,#{digits}}\.5)[^0-9].*\z/i)&.captures return p basename if (episode || point5).nil? p "#{name} Episode #{(episode || point5).to_s.rjust(digits, "0")}" end |
#run(args) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/anime_renamer.rb', line 7 def run(args) name = args[0] ext = args[1] || ".mkv" dir = args[2] || "./**/*.*" digits = args[3] || 2 get_file_with_extension(dir, ext).map {|x| [x, rename(x, name, digits)]}.each do |file| p file[0] p file[1] change_name file[0], file[1] end end |