philomath 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd7b0c304a0ed0306aba4660fb0ee17cff27b671b8fe2606c8a41c0acf36e46c
4
- data.tar.gz: 401b25956693d11eaa2a4337b86ec5dea2849b7b08f6b04970b59b15bddbbda6
3
+ metadata.gz: 8f4e3e5431ca4bd106a6e79f0db37aa9e97d37091401941bf38c622688c172f5
4
+ data.tar.gz: cea03cb40a98d7e516d2646852c29c21dfe7cdc68c19efec4d48d62fc002226f
5
5
  SHA512:
6
- metadata.gz: fcdf66b21e981a86592f0482bd47a1185b2166b3f40e1db3d3c767b2e2f32e45a14eaf524a801d95946e7a708fa52a1adc9a48bc97360e44097b44d3f1f257f9
7
- data.tar.gz: defe87eb60a168985730e4e79f292349da7dd7dda365f80826760f2aae32ec6aa867a4c21e59f79b5048e67250a3c5113f6785f14f5f1e7ffadd4b8f13668b8f
6
+ metadata.gz: 9cca4adb9fe3c9d20857f1a3b7e6529300ee731c0ccddf7ab9cdded9866a1197caa6387debffc70fe29cac6856ea4fa6e7c879f3bba583479940bf801d66df30
7
+ data.tar.gz: b668e3e8e1877d46669cdcd043f4d29870074e59c43de602232536160db80148ff1d1d2a1b40b27b5c44612c4dc18e199cda450e9fae4e5a8ce980f720eeb6c8
@@ -3,7 +3,7 @@ module Philomath
3
3
  module_function
4
4
 
5
5
  def to_s
6
- "0.0.3"
6
+ "0.0.5"
7
7
  end
8
8
  end
9
9
  end
data/lib/philomath.rb CHANGED
@@ -3,6 +3,7 @@ require 'prawn'
3
3
  require 'prawn_components'
4
4
  require 'nokogiri'
5
5
  require 'open-uri'
6
+ require 'yaml'
6
7
 
7
8
  require_relative 'philomath/rendering/render_code_inline'
8
9
  require_relative 'philomath/rendering/render_styled_link'
@@ -11,7 +12,13 @@ require_relative 'philomath/rendering/render_callback'
11
12
 
12
13
  module Philomath
13
14
  class << self
14
- def render(chapters:, output_path: nil)
15
+ def render_from_config(config_file: 'book.yml', output_path: nil)
16
+ configuration = YAML.load(File.read(config_file))
17
+
18
+ render(chapters: configuration.fetch('chapters'), output_path:, cover_image: configuration['cover_image'])
19
+ end
20
+
21
+ def render(chapters:, output_path: nil, cover_image: nil)
15
22
  table_of_contents = {}
16
23
  contents = {}
17
24
  pdf_chapters = []
@@ -21,6 +28,14 @@ module Philomath
21
28
  PrawnComponents.initialize_fonts(pdf: pdf)
22
29
  pdf.font('Inter')
23
30
 
31
+ unless cover_image.nil?
32
+ pdf.canvas do
33
+ pdf.image(cover_image, scale: 0.4, at: pdf.bounds.top_left)
34
+ end
35
+
36
+ pdf.start_new_page
37
+ end
38
+
24
39
  chapters.each do |chapter|
25
40
  content = chapter.key?(:content) ? chapter[:content] : File.read(chapter.fetch(:file_path))
26
41
  pdf_chapters << {
@@ -85,7 +100,7 @@ module Philomath
85
100
  pdf.start_new_page unless chapter_conf_i == pdf_chapters.size - 1
86
101
  end
87
102
 
88
- toc_page = 1
103
+ toc_page = cover_image.nil? ? 1 : 2
89
104
 
90
105
  pdf.go_to_page(toc_page)
91
106
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: philomath
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paweł Dąbrowski