Module: ClockworkComicPDF::BookValidation
- Included in:
- Book
- Defined in:
- lib/clockwork_comic_pdf/book_validation.rb
Overview
Validation Module for Book Class
Instance Method Summary collapse
- #get_comic_files(check_ver, sub) ⇒ Object
- #image_mismatch ⇒ Object
- #scan_section(v_name, sec_v, c_name, sec_c) ⇒ Object
- #scan_version(key_v, sec, files) ⇒ Object
- #section_files(check_ver) ⇒ Object
- #validate ⇒ Object
- #version_files ⇒ Object
Instance Method Details
#get_comic_files(check_ver, sub) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/clockwork_comic_pdf/book_validation.rb', line 67 def get_comic_files(check_ver, sub) current_dir = "./#{check_ver.name}/#{sub.directory}/" unless File.exist?(current_dir) fail InvalidValueError, "#{File.path(current_dir)} does not exist" end c_files = [] Dir["#{current_dir}*.*"].each do |file| c_files << File.basename(file, '.*') end c_files end |
#image_mismatch ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/clockwork_comic_pdf/book_validation.rb', line 16 def image_mismatch mismatch = [] files = version_files files.each_pair do |key_v, sec| mismatch.concat(scan_version(key_v, sec, files)) end mismatch.flatten end |
#scan_section(v_name, sec_v, c_name, sec_c) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/clockwork_comic_pdf/book_validation.rb', line 35 def scan_section(v_name, sec_v, c_name, sec_c) mismatch = [] sec_v.each_pair do |ss_key, ss_v| ss_v.each do |f| unless sec_c[ss_key].include? f mismatch << "#{f} in section #{ss_key.name} exists " << "in #{v_name} but not #{c_name}" end end end mismatch end |
#scan_version(key_v, sec, files) ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'lib/clockwork_comic_pdf/book_validation.rb', line 25 def scan_version(key_v, sec, files) mismatch = [] files.each_pair do |c_ver, c_sec| unless key_v == c_ver mismatch << scan_section(key_v.name, sec, c_ver.name, c_sec) end end mismatch end |
#section_files(check_ver) ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/clockwork_comic_pdf/book_validation.rb', line 56 def section_files(check_ver) s_files = {} [sections.front_matter, sections.body, sections.end_matter].flatten.each do |sub| if sub.is_a? SectionComicPages s_files[sub] = get_comic_files(check_ver, sub) end end s_files end |
#validate ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/clockwork_comic_pdf/book_validation.rb', line 4 def validate fail MissingValueError, 'base_file_name required' unless @base_file_name cover.validate if cover sections.validate versions.validate miss = image_mismatch if miss.count > 0 fail_s = "Image directories do no match: #{miss.join(', ')}" fail MissingValueError, fail_s end end |
#version_files ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/clockwork_comic_pdf/book_validation.rb', line 48 def version_files files = {} versions.each do |version| files[version] = section_files(version) end files end |