verify filename
This commit is contained in:
parent
fe9330f50e
commit
3652e290b9
@ -20,8 +20,6 @@ class ConfigLoader
|
|||||||
fileinfo_by_file = {}
|
fileinfo_by_file = {}
|
||||||
|
|
||||||
if global['pages']
|
if global['pages']
|
||||||
re = nil
|
|
||||||
|
|
||||||
files = global['pages'].collect do |f|
|
files = global['pages'].collect do |f|
|
||||||
result = nil
|
result = nil
|
||||||
case f.class.to_s
|
case f.class.to_s
|
||||||
|
@ -1,29 +1,19 @@
|
|||||||
class FileProcessor
|
class FileProcessor
|
||||||
|
attr_accessor :config, :paginated_source_files, :page_index
|
||||||
|
|
||||||
|
def initialize(config)
|
||||||
|
@page_index = 0
|
||||||
|
@config = config
|
||||||
|
@paginated_source_files = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
def process
|
def process
|
||||||
|
|
||||||
paginated_source_files = {}
|
|
||||||
rsync_files_by_target = {}
|
rsync_files_by_target = {}
|
||||||
|
|
||||||
files.each do |filename|
|
files.each do |filename|
|
||||||
ok = true; matches = nil; fileinfo = {}
|
ok, fileinfo, filename = verify_filename(filename)
|
||||||
|
|
||||||
if filename.instance_of? Hash
|
|
||||||
if filename['blank']
|
|
||||||
ok = false
|
|
||||||
config.each do |type, info|
|
|
||||||
if info['is_paginated']
|
|
||||||
if !paginated_source_files[type]; paginated_source_files[type] = []; end
|
|
||||||
paginated_source_files[type] << nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
page_index += 1
|
|
||||||
else
|
|
||||||
fileinfo = filename
|
|
||||||
filename = fileinfo['file']
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if re; ok = matches = re.match(filename); end
|
|
||||||
end
|
|
||||||
|
|
||||||
if ok
|
if ok
|
||||||
filename_display = (filename.instance_of? Array) ? filename.join(", ") : filename
|
filename_display = (filename.instance_of? Array) ? filename.join(", ") : filename
|
||||||
@ -31,11 +21,11 @@ class FileProcessor
|
|||||||
puts "Examining #{filename_display}..."
|
puts "Examining #{filename_display}..."
|
||||||
|
|
||||||
filename_parts = {
|
filename_parts = {
|
||||||
'page_index' => sprintf(page_index_format, page_index)
|
'page_index' => sprintf(page_index_format, @page_index)
|
||||||
}
|
}
|
||||||
|
|
||||||
if matches
|
if @config['Global']['match']
|
||||||
all, index, title = matches.to_a
|
all, index, title = ok.to_a
|
||||||
else
|
else
|
||||||
index = page_index - 1
|
index = page_index - 1
|
||||||
title = ""
|
title = ""
|
||||||
@ -152,4 +142,38 @@ class FileProcessor
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def verify_filename(filename)
|
||||||
|
ok = true
|
||||||
|
fileinfo = {}
|
||||||
|
|
||||||
|
if filename.instance_of? Hash
|
||||||
|
if filename['blank']
|
||||||
|
ok = false
|
||||||
|
@config.each do |type, info|
|
||||||
|
if info['is_paginated']
|
||||||
|
if !@paginated_source_files[type]
|
||||||
|
@paginated_source_files[type] = []
|
||||||
|
end
|
||||||
|
@paginated_source_files[type] << nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@page_index += 1
|
||||||
|
else
|
||||||
|
if filename['file']
|
||||||
|
fileinfo = filename
|
||||||
|
filename = fileinfo['file']
|
||||||
|
else
|
||||||
|
ok = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if @config['Global']
|
||||||
|
if @config['Global']['match']
|
||||||
|
ok = Regexp.new(@config['Global']['match']).match(filename)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
[ ok, fileinfo, filename ]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user