Class: MakePDF::PDFWriter
Direct Known Subclasses
Instance Attribute Summary collapse
-
#logger ⇒ Object
readonly
Returns the value of attribute logger.
-
#output_dir ⇒ Object
readonly
Returns the value of attribute output_dir.
-
#source_url ⇒ Object
readonly
Returns the value of attribute source_url.
Instance Method Summary collapse
-
#initialize(input_base_url:, output_base_path:, input_scheme: "file", input_host: nil, logger: Logger.new(), **options) ⇒ PDFWriter
constructor
A new instance of PDFWriter.
- #make_output_filename(file, input_location:, output_base_path:, output_dir: ".", **options) ⇒ Object
- #make_pdf_filename(file, output_base_path:, input_location:, output_dir:, **options) ⇒ Object
- #make_relative_file(file, input_location:, **options) ⇒ Object
- #make_source_url(file, input_base_url:, output_base_path:, input_scheme:, input_host:, input_location:, **options) ⇒ Object
- #process(file, version: [], **options) ⇒ Object
Methods included from PathManip
Constructor Details
#initialize(input_base_url:, output_base_path:, input_scheme: "file", input_host: nil, logger: Logger.new(), **options) ⇒ PDFWriter
Returns a new instance of PDFWriter.
70 71 72 73 74 75 |
# File 'lib/make_pdf.rb', line 70 def initialize(input_base_url:, output_base_path:, input_scheme: "file", input_host: nil, logger: Logger.new() ,**) @logger = logger raise ArgumentError.new("Scheme `#{input_scheme}` requires an `input_host`.") if input_scheme != "file" && input_host.nil? = .merge({ input_base_url:, output_base_path:, input_scheme:, input_host: }) end |
Instance Attribute Details
#logger ⇒ Object (readonly)
Returns the value of attribute logger.
68 69 70 |
# File 'lib/make_pdf.rb', line 68 def logger @logger end |
#output_dir ⇒ Object (readonly)
Returns the value of attribute output_dir.
68 69 70 |
# File 'lib/make_pdf.rb', line 68 def output_dir @output_dir end |
#source_url ⇒ Object (readonly)
Returns the value of attribute source_url.
68 69 70 |
# File 'lib/make_pdf.rb', line 68 def source_url @source_url end |
Instance Method Details
#make_output_filename(file, input_location:, output_base_path:, output_dir: ".", **options) ⇒ Object
100 101 102 103 104 105 106 107 108 |
# File 'lib/make_pdf.rb', line 100 def make_output_filename(file, input_location:, output_base_path:, output_dir: ".", **) @logger.verbose("make_output_filename(#{file}, #{input_location}, #{output_base_path})") filename = make_pdf_filename(file, output_base_path:, output_dir:, input_location:, **) output_base_path = path_of(output_base_path) output = output_base_path / relative_path_of(output_dir) / filename FileUtils::mkdir_p(output.dirname) @logger.debug("filename: #{filename} ⇒ #{output}") output end |
#make_pdf_filename(file, output_base_path:, input_location:, output_dir:, **options) ⇒ Object
92 93 94 95 96 97 98 |
# File 'lib/make_pdf.rb', line 92 def make_pdf_filename(file, output_base_path:, input_location:, output_dir:, **) base_path = path_of(output_base_path) filepath = make_relative_file(file, input_location:).sub_ext(".pdf") result = base_path / relative_path_of(output_dir) / filepath @logger.verbose("make_pdf_filename(#{file}, #{output_base_path}) → base_path: #{base_path}, filepath: #{filepath} ⇒ #{result}") result end |
#make_relative_file(file, input_location:, **options) ⇒ Object
77 78 79 |
# File 'lib/make_pdf.rb', line 77 def make_relative_file(file, input_location:, **) path_of(file).relative_path_from(path_of(input_location)) end |
#make_source_url(file, input_base_url:, output_base_path:, input_scheme:, input_host:, input_location:, **options) ⇒ Object
81 82 83 84 85 86 87 88 89 90 |
# File 'lib/make_pdf.rb', line 81 def make_source_url(file, input_base_url:, output_base_path:, input_scheme: , input_host: , input_location:, **) target_file = make_relative_file(file, input_location:, **) input_location = path_of(input_location) input_base_url = relative_path_of(input_base_url) if (input_scheme != "file") return input_scheme + "://" + input_host + "/" + (input_base_url / target_file).to_path else return (input_location / input_location / target_file).to_path end end |
#process(file, version: [], **options) ⇒ Object
110 111 112 113 114 115 116 117 118 119 |
# File 'lib/make_pdf.rb', line 110 def process(file, version: [], **) = .merge() output_filename = make_output_filename(file, version: version, **) write( make_source_url(file, vesrsion: version, **), output_filename, ** ) output_filename end |