Class: Pocketbook::BookRenderer
- Inherits:
-
Object
- Object
- Pocketbook::BookRenderer
- Defined in:
- lib/pocketbook/book_renderer.rb,
lib/pocketbook/book_renderer/pdf.rb,
lib/pocketbook/book_renderer/toc.rb,
lib/pocketbook/book_renderer/chapter.rb,
lib/pocketbook/book_renderer/metadata.rb,
lib/pocketbook/book_renderer/front_matter.rb
Defined Under Namespace
Classes: Chapter, FrontMatter, Metadata, Pdf, Toc
Constant Summary collapse
- DEFAULT_METADATA =
Metadata::DEFAULT_VALUES
Instance Method Summary collapse
-
#initialize(inputs:, theme:, output_path: nil, metadata: {}) ⇒ BookRenderer
constructor
A new instance of BookRenderer.
- #render ⇒ Object
- #render_html ⇒ Object
Constructor Details
#initialize(inputs:, theme:, output_path: nil, metadata: {}) ⇒ BookRenderer
Returns a new instance of BookRenderer.
16 17 18 19 20 21 |
# File 'lib/pocketbook/book_renderer.rb', line 16 def initialize(inputs:, theme:, output_path: nil, metadata: {}) @inputs = inputs @theme = theme @output_path = output_path @cli_metadata = symbolize_keys() end |
Instance Method Details
#render ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/pocketbook/book_renderer.rb', line 23 def render raise ArgumentError, "Output PDF path is required" if blank?(@output_path) validate_paths! chapters, front_matter = chapter_compiler.compile(inputs: @inputs) = (front_matter) toc_targets = toc_builder.targets(chapters: chapters) html_without_toc_pages = build_document_html(chapters, , toc_page_numbers: {}) toc_page_numbers = resolve_toc_page_numbers(html_without_toc_pages, toc_targets) html = build_document_html(chapters, , toc_page_numbers: toc_page_numbers) FileUtils.mkdir_p(File.dirname(@output_path)) generate_pdf_to_path(html, @output_path) @output_path end |
#render_html ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/pocketbook/book_renderer.rb', line 42 def render_html validate_paths! chapters, front_matter = chapter_compiler.compile(inputs: @inputs) = (front_matter) build_document_html(chapters, , toc_page_numbers: {}) end |