philomath 0.0.1 → 0.0.2

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: bb70795a33712bfa57b1199014c8c8e47db6b01939a20b2076f8893f687cf126
4
- data.tar.gz: 97dace31e67170cd2c76e5618be7263df4a57e9ff6c02bd8632cd99587164685
3
+ metadata.gz: de6e9c1a93226838154a7f40af3612342837c70409bb55b764d476012646a22d
4
+ data.tar.gz: 2fabfee1a00ede53ea2fb474b268948c2011c71d4450061f48ec568a6e74b02f
5
5
  SHA512:
6
- metadata.gz: a416eceddfbf958bc994dd221e9844bc4886f65bea2da18553a74d786c364b061860ad72fce0c345f78d85a6f15d2dd7327e678df50c3517806517837c19b048
7
- data.tar.gz: afa5784f2b3c04aee3dd1f4cc4a0b1f2aec86a22ac6f73d18bdca7a4247fa6680a0145d40cd0d0b51210ec9c4f516e012f4fd45040968f6dc9af5d96d120ed24
6
+ metadata.gz: 5963a141fa1cc5bd0f753c7e4eb67219209032cbbe0bc4b356b3996b8ef5ff61db3c4170698d00b3b0f5104dd13a2ce58c8e2e584631c9af6c0d16652eebeaea
7
+ data.tar.gz: 6eea387613f3750102a906b490f7ef22226908d26042070169cfe9179286b1b53a60c165bbc1090faecb9c137fcb6af02857b5f28f5092aae86df7e20eedfdab
@@ -3,7 +3,7 @@ module Philomath
3
3
  module_function
4
4
 
5
5
  def to_s
6
- "0.0.1"
6
+ "0.0.2"
7
7
  end
8
8
  end
9
9
  end
data/lib/philomath.rb CHANGED
@@ -10,7 +10,7 @@ require_relative 'philomath/rendering/render_callback'
10
10
 
11
11
  module Philomath
12
12
  class << self
13
- def render(chapters:)
13
+ def render(chapters:, output_path: nil)
14
14
  table_of_contents = {}
15
15
  contents = {}
16
16
  pdf_chapters = []
@@ -21,9 +21,10 @@ module Philomath
21
21
  pdf.font('Inter')
22
22
 
23
23
  chapters.each do |chapter|
24
+ content = chapter.key?(:content) ? chapter[:content] : File.read(chapter.fetch(:file_path))
24
25
  pdf_chapters << {
25
26
  name: chapter[:name],
26
- parsed_elements: Markdownlyze.parse(chapter[:content])
27
+ parsed_elements: Markdownlyze.parse(content)
27
28
  }
28
29
  end
29
30
 
@@ -42,30 +43,30 @@ module Philomath
42
43
  chapter_elements.each do |node|
43
44
  case node[:element]
44
45
  when :h1
45
- pdf.public_send("h1", node[:value], callback: callback)
46
+ pdf.h1(node[:value], callback: callback)
46
47
  when :h2
47
48
  table_of_contents[chapter_conf[:name]][:headings][node[:value]] = pdf.page_number
48
- pdf.public_send("h2", node[:value], callback: callback)
49
+ pdf.h2(node[:value], callback: callback)
49
50
  when :h3
50
- pdf.public_send("h3", node[:value], callback: callback)
51
+ pdf.h3(node[:value], callback: callback)
51
52
  when :h4
52
- pdf.public_send("h4", node[:value], callback: callback)
53
+ pdf.h4(node[:value], callback: callback)
53
54
  when :paragraph
54
- pdf.public_send("paragraph", callback.call(node[:value]))
55
+ pdf.paragraph(callback.call(node[:value]))
55
56
  when :code_block
56
- pdf.public_send("code_block", node[:value], node[:language])
57
+ pdf.code_block(node[:value], node[:language])
57
58
  when :blank_line
58
59
  pdf.move_down(3)
59
60
  when :ol
60
- pdf.public_send("ol", node[:value], callback: callback)
61
+ pdf.ol(node[:value], callback: callback)
61
62
  when :ul
62
- pdf.public_send("ul", node[:value], callback: callback)
63
+ pdf.ul(node[:value], callback: callback)
63
64
  when :image
64
65
  pdf.move_down(6)
65
66
  pdf.image(chapter.images[node[:value]], position: :center, width: pdf.bounds.width - 25)
66
67
  pdf.move_down(6)
67
68
  when :quote
68
- pdf.public_send("quote", node[:value], callback: callback)
69
+ pdf.quote(node[:value], callback: callback)
69
70
  pdf.move_down(6)
70
71
  end
71
72
  end
@@ -77,10 +78,10 @@ module Philomath
77
78
 
78
79
  pdf.go_to_page(toc_page)
79
80
 
80
- pdf.public_send("h1", 'Table of contents')
81
+ pdf.h1('Table of contents')
81
82
  pdf.move_down(50)
82
83
 
83
- pdf.public_send("table_of_contents", table_of_contents)
84
+ pdf.table_of_contents(table_of_contents)
84
85
 
85
86
  # Generate clickable table of contents
86
87
  pdf.outline.define do |outline|
@@ -107,7 +108,11 @@ module Philomath
107
108
 
108
109
  pdf.number_pages('<page>', options)
109
110
 
110
- pdf.render
111
+ if output_path
112
+ pdf.render_file(output_path)
113
+ else
114
+ pdf.render
115
+ end
111
116
  end
112
117
 
113
118
  private
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.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paweł Dąbrowski
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 0.0.1
47
+ version: 0.0.2
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 0.0.1
54
+ version: 0.0.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: prawn
57
57
  requirement: !ruby/object:Gem::Requirement