module Mangdown::CBZ
Package manga or chapter directories into .cbz archive files
Public Class Methods
all(main_dir)
click to toggle source
# File lib/mangdown/support/cbz.rb, line 9 def all(main_dir) main_dir = String(main_dir) main_dir = validate_file_or_dir_names(main_dir, false) each_dir_or_page(main_dir) { |dir| validate_file_or_dir_names(dir) } cbz_sub_dirs(main_dir) end
one(dir, validate_main_dir = true)
click to toggle source
# File lib/mangdown/support/cbz.rb, line 16 def one(dir, validate_main_dir = true) dir = String(dir) dir = validate_file_or_dir_names(dir, validate_main_dir) cbz_dir(dir) end
Private Class Methods
cbz_dir(dir)
click to toggle source
# File lib/mangdown/support/cbz.rb, line 24 def cbz_dir(dir) dir = dir.to_s.sub(%r{/*$}, '') zip_filename = dir + '.cbz' return if File.exist?(zip_filename) ::Zip::File.open(zip_filename, ::Zip::File::CREATE) do |zip| file_matcher = File.join(dir, '**', '**') Dir.glob(file_matcher).each do |file| filename = file.sub("#{dir}/", '') zip.add(filename, file) end end end
cbz_sub_dirs(dir)
click to toggle source
# File lib/mangdown/support/cbz.rb, line 40 def cbz_sub_dirs(dir) each_dir_or_page(dir) do |sub_dir| cbz_dir(sub_dir) end end
each_dir_or_page(dir) { |filename| ... }
click to toggle source
# File lib/mangdown/support/cbz.rb, line 46 def each_dir_or_page(dir) Dir.glob(dir + '/*').each do |filename| next if filename.include?('.cbz') yield(filename) end end
rename_with_valid_name(filename)
click to toggle source
# File lib/mangdown/support/cbz.rb, line 61 def rename_with_valid_name(filename) checked_name = Tools.valid_path_name(filename) File.rename(filename, checked_name) checked_name end
validate_file_or_dir_names(dir, validate_main_dir = true)
click to toggle source
# File lib/mangdown/support/cbz.rb, line 54 def validate_file_or_dir_names(dir, validate_main_dir = true) each_dir_or_page(dir) do |filename| rename_with_valid_name(filename) end validate_main_dir ? rename_with_valid_name(dir) : dir end