Class: AnimeRenamer::Renamer

Inherits:
Object
  • Object
show all
Defined in:
lib/anime_renamer.rb

Instance Method Summary collapse

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