obf 0.9.8.32 → 0.9.8.37

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: 16b1632c3cbc9a1ae6257270d4efb70929ded87aa79c1b73a5ed7c553e452df6
4
- data.tar.gz: 37d0c8a2c6eed4b4ce9ba26bf97f76d12040b33def794d1524cc2ea4028ab0ad
3
+ metadata.gz: 9e9c05fbc1eb76aca00e0b2bda343ed7d2309ef8350d494eee7c07b1806013e4
4
+ data.tar.gz: 0b13491784c9dae969e7cf9344f7c5d171b63ab6251a37d57ce0261ae78106da
5
5
  SHA512:
6
- metadata.gz: 236aefcd275d5d2323895a6c463b7d08028f4b6b746e41df12efd723ca3829324edfd5030c07ac2a4e9b7f54999660f2a9efc5d40b97790ee24c90b395fdb3bd
7
- data.tar.gz: 2f5fe9234e980e76d4bfd23affa13a0966ab1bd6c8f394a7cb2fc7f614c0f8baac92662a0ecd3b48632e282ea0747a1c751c31441fa086bb349da05553197848
6
+ metadata.gz: 9459a448663ae43c120ed92d1d223efa5402895665919df8ba2d1ac2c8a52276724f6b4157a71f6c1abe7fafa26029118467a1646f1f0ea2083320dc5c8fcc45
7
+ data.tar.gz: 8847fd9594814bb7789178f89584811f63c4726982307a1e4ff432cb9537e9a2beff69c684d4218a04d398116128bab6efc7e87eadc07f24a0a6d09f64aedffa
Binary file
data/lib/obf/external.rb CHANGED
@@ -116,6 +116,8 @@ module OBF::External
116
116
  OBF::Utils.update_current_progress(idx.to_f / button_count.to_f)
117
117
  end
118
118
 
119
+ # board_id 1_527892 has some svg's still, not pre-rasterized versions
120
+ # 1_531854 convert-im6.q16: non-conforming drawing primitive definition `Helvetica''' @ error/draw.c/DrawImage/3265.
119
121
  if to_include[:images]
120
122
  hydra = OBF::Utils.hydra
121
123
  grabs = []
@@ -129,6 +131,7 @@ module OBF::External
129
131
  end
130
132
  end
131
133
  end
134
+ OBF::Utils.log(" batch-retrieving #{grabs.length} images for board #{res['name'] || res['id']}")
132
135
  hydra.run
133
136
 
134
137
  grabs.each do |grab|
@@ -192,6 +195,20 @@ module OBF::External
192
195
  end
193
196
  res['images'] << trim_empties(image)
194
197
  end
198
+ elsif to_include[:image_urls]
199
+ images.each do |original_image|
200
+ image = {
201
+ 'id' => original_image['id'],
202
+ 'width' => original_image['width'],
203
+ 'height' => original_image['height'],
204
+ 'license' => OBF::Utils.parse_license(original_image['license']),
205
+ 'url' => original_image['url'],
206
+ 'data_url' => original_image['data_url'],
207
+ 'content_type' => original_image['content_type']
208
+ }
209
+ res['images'] << trim_empties(image)
210
+ end
211
+
195
212
  end
196
213
 
197
214
  if to_include[:sounds]
@@ -225,6 +242,18 @@ module OBF::External
225
242
  sound['path'] = zip_path
226
243
  end
227
244
 
245
+ res['sounds'] << trim_empties(sound)
246
+ end
247
+ elsif to_include[:sound_urls]
248
+ sounds.each do |original_sound|
249
+ sound = {
250
+ 'id' => original_sound['id'],
251
+ 'duration' => original_sound['duration'],
252
+ 'license' => OBF::Utils.parse_license(original_sound['license']),
253
+ 'url' => original_sound['url'],
254
+ 'data_url' => original_sound['data_url'],
255
+ 'content_type' => original_sound['content_type']
256
+ }
228
257
  res['sounds'] << trim_empties(sound)
229
258
  end
230
259
  end
data/lib/obf/pdf.rb CHANGED
@@ -31,6 +31,36 @@ module OBF::PDF
31
31
  build_pdf(obj, dest_path, zipper, opts)
32
32
  return dest_path
33
33
  end
34
+
35
+ def self.load_fonts(pdf, opts)
36
+ # remember: https://www.alphabet-type.com/tools/charset-checker/
37
+ pdf.font_families.update('THFahKwangBold' => {
38
+ normal: File.expand_path('../../THFahKwangBold.ttf', __FILE__)
39
+ })
40
+ pdf.font_families.update('MiedingerBook' => {
41
+ normal: File.expand_path('../../MiedingerBook.ttf', __FILE__)
42
+ })
43
+ pdf.font_families.update('Arial' => {
44
+ normal: File.expand_path('../../Arial.ttf', __FILE__)
45
+ })
46
+ pdf.font_families.update('TimesNewRoman' => {
47
+ normal: File.expand_path('../../TimesNewRoman.ttf', __FILE__)
48
+ })
49
+ # TODO: option to add more fonts
50
+ pdf.font_families.update('Sazanami-Hanazono-Mincho' => {
51
+ normal: File.expand_path('../../Sazanami-Hanazono-Mincho.ttf', __FILE__)
52
+ })
53
+ default_font = 'TimesNewRoman'
54
+ if opts['font'] && !opts['font'].match(/TimesNewRoman/) && File.exists?(opts['font'])
55
+ pdf.font_families.update('DocDefault' => {
56
+ normal: opts['font']
57
+ })
58
+ default_font = 'DocDefault'
59
+ end
60
+ pdf.fallback_fonts = ['TimesNewRoman', 'THFahKwangBold', 'MiedingerBook', 'Helvetica', 'Sazanami-Hanazono-Mincho']
61
+ pdf.font(default_font)
62
+ default_font
63
+ end
34
64
 
35
65
  def self.build_pdf(obj, dest_path, zipper, opts={})
36
66
  OBF::Utils.as_progress_percent(0, 1.0) do
@@ -43,33 +73,11 @@ module OBF::PDF
43
73
  }
44
74
  }
45
75
  pdf = Prawn::Document.new(doc_opts)
46
- # remember: https://www.alphabet-type.com/tools/charset-checker/
47
- pdf.font_families.update('THFahKwangBold' => {
48
- normal: {font: 'THFahKwangBold', file: File.expand_path('../../THFahKwangBold.ttf', __FILE__)}
49
- })
50
- pdf.font_families.update('MiedingerBook' => {
51
- normal: {font: 'MiedingerBook', file: File.expand_path('../../MiedingerBook.ttf', __FILE__)}
52
- })
53
- pdf.font_families.update('Arial' => {
54
- normal: {font: 'Arial', file: File.expand_path('../../Arial.ttf', __FILE__)}
55
- })
56
- pdf.font_families.update('TimesNewRoman' => {
57
- normal: {font: 'TimesNewRoman', file: File.expand_path('../../TimesNewRoman.ttf', __FILE__)}
58
- })
59
- default_font = 'TimesNewRoman'
60
- if opts['font'] && !opts['font'].match(/TimesNewRoman/) && File.exists?(opts['font'])
61
- pdf.font_families.update('DocDefault' => {
62
- normal: {font: 'DocDefault', file: font}
63
- })
64
- default_font = 'DocDefault'
65
- else
66
- end
67
- pdf.fallback_fonts = ['TimesNewRoman', 'THFahKwangBold', 'MiedingerBook', 'Helvetica']
68
- pdf.font(default_font)
76
+ default_font = load_fonts(pdf, opts)
69
77
 
70
78
  multi_render_paths = []
71
79
  if obj['boards']
72
- multi_render = obj['boards'].length > 20
80
+ multi_render = obj['boards'].length > 20 && `which gs`.length > 0
73
81
  obj['backlinks'] = {}
74
82
  if obj['pages']
75
83
  obj['boards'].each do |board|
@@ -90,10 +98,10 @@ module OBF::PDF
90
98
  OBF::Utils.as_progress_percent(pre, post) do
91
99
  # if more than 20 pages, build each page individually
92
100
  # and combine them afterwards
93
-
94
101
  if multi_render
95
102
  path = OBF::Utils.temp_path("stash-#{idx}.pdf")
96
103
  pdf = Prawn::Document.new(doc_opts)
104
+ load_fonts(pdf, opts)
97
105
  else
98
106
  pdf.start_new_page unless idx == 0
99
107
  end
@@ -119,7 +127,7 @@ module OBF::PDF
119
127
  else
120
128
  build_page(pdf, obj, {
121
129
  'headerless' => !!opts['headerless'],
122
- 'font' => font,
130
+ 'font' => default_font,
123
131
  'text_on_top' => !!opts['text_on_top'],
124
132
  'transparent_background' => !!opts['transparent_background'],
125
133
  'symbol_background' => opts['symbol_background'],
@@ -154,98 +162,114 @@ module OBF::PDF
154
162
  page_num = options['pages'][obj['id']].to_i
155
163
  pdf.add_dest("page#{page_num}", pdf.dest_fit) if options['links']
156
164
  end
157
- # header
158
- if !options['headerless']
159
- header_height = 80
160
- pdf.bounding_box([0, doc_height], :width => doc_width, :height => header_height) do
161
- pdf.font('Arial')
162
- pdf.line_width = 2
163
- pdf.font_size 16
164
- pdf.fill_color "eeeeee"
165
- pdf.stroke_color "888888"
166
-
167
- include_back = options['pages'] && page_num != 1 && page_num != 0
168
- # Go Back
169
- if include_back
170
- OBF::Utils.log " board backlinks #{obj['id']} #{options['backlinks'].to_json}"
171
- options['backlinks'] ||= []
172
- if options['backlinks'].length > 0
173
- x = 110
174
- pdf.fill_and_stroke_rounded_rectangle [x, header_height], 100, header_height, default_radius
175
- pdf.fill_color "6D81D1"
176
- pdf.fill_and_stroke_polygon([x + 5, 45], [x + 35, 70], [x + 35, 60], [x + 95, 60], [x + 95, 30], [x + 35, 30], [x + 35, 20])
177
- pdf.fill_color "666666"
178
- text_options = {:text => "Go Back"}
179
- text_options[:anchor] = "page1" if options['links']
180
- pdf.formatted_text_box [text_options], :at => [x + 10, header_height], :width => 80, :height => 80, :align => :center, :valign => :bottom, :overflow => :shrink_to_fit
181
- backlinks = (options['backlinks'] || []).join(',')
182
- pdf.fill_color "ffffff"
183
- pdf.formatted_text_box [{:text => backlinks}], :at => [x + 20, header_height + 5 - 25], :width => 70, :height => 30, :align => :center, :valign => :center, :overflow => :shrink_to_fit
184
- end
185
- end
165
+ pdf.font('Arial') do
166
+ # header
167
+ if !options['headerless']
168
+ header_height = 80
169
+ pdf.bounding_box([0, doc_height], :width => doc_width, :height => header_height) do
170
+ pdf.line_width = 2
171
+ pdf.font_size 16
172
+ pdf.fill_color "eeeeee"
173
+ pdf.stroke_color "888888"
174
+ include_back = options['pages'] && page_num != 1 && page_num != 0
175
+ # Go Back
176
+ if include_back
177
+ OBF::Utils.log " board backlinks #{obj['id']} #{options['backlinks'].to_json}"
178
+ options['backlinks'] ||= []
179
+ if options['backlinks'].length > 0
180
+ x = 110
181
+ pdf.fill_and_stroke_rounded_rectangle [x, header_height], 100, header_height, default_radius
182
+ pdf.fill_color "6D81D1"
183
+ pdf.fill_and_stroke_polygon([x + 5, 45], [x + 35, 70], [x + 35, 60], [x + 95, 60], [x + 95, 30], [x + 35, 30], [x + 35, 20])
184
+ pdf.fill_color "666666"
185
+ text_options = {:text => "Go Back"}
186
+ text_options[:anchor] = "page1" if options['links']
187
+ pdf.formatted_text_box [text_options], :at => [x + 10, header_height], :width => 80, :height => 80, :align => :center, :valign => :bottom, :overflow => :shrink_to_fit
188
+ if options['backlinks'].length <= 3
189
+ backlinks = (options['backlinks'] || []).join(',')
190
+ pdf.fill_color "ffffff"
191
+ pdf.formatted_text_box [{:text => backlinks}], :at => [x + 20, header_height + 5 - 25], :width => 70, :height => 30, :align => :center, :valign => :center, :overflow => :shrink_to_fit
192
+ end
193
+ end
194
+ end
186
195
 
187
- # Say it Out Loud
188
- pdf.fill_color "ffffff"
189
- shift = include_back ? 0 : 55
190
- offset = include_back ? 110 : 55
191
- box_shift = include_back ? 110 : 0
192
-
193
- pdf.fill_and_stroke_rounded_rectangle [110 + box_shift, header_height], 170 + shift + shift, header_height, default_radius
194
- pdf.fill_color "DDDB54"
195
- pdf.fill_and_stroke do
196
- pdf.move_to 160 + offset, 40
197
- pdf.line_to 190 + offset, 55
198
- pdf.curve_to [125 + offset, 40], :bounds => [[180 + offset, 80], [125 + offset, 80]]
199
- pdf.curve_to [190 + offset, 25], :bounds => [[125 + offset, 0], [180 + offset, 0]]
200
- pdf.line_to 160 + offset, 40
201
- end
202
- pdf.fill_color "444444"
203
- pdf.text_box "Say that out loud for me", :at => [210 + offset, header_height], :width => 60, :height => 80, :align => :center, :valign => :center, :overflow => :shrink_to_fit
196
+ # Say it Out Loud
197
+ pdf.fill_color "ffffff"
198
+ shift = include_back ? 0 : 55
199
+ offset = include_back ? 110 : 55
200
+ box_shift = include_back ? 110 : 0
201
+
202
+ pdf.fill_and_stroke_rounded_rectangle [110 + box_shift, header_height], 170 + shift + shift, header_height, default_radius
203
+ pdf.fill_color "DDDB54"
204
+ pdf.fill_and_stroke do
205
+ pdf.move_to 160 + offset, 40
206
+ pdf.line_to 190 + offset, 55
207
+ pdf.curve_to [125 + offset, 40], :bounds => [[180 + offset, 80], [125 + offset, 80]]
208
+ pdf.curve_to [190 + offset, 25], :bounds => [[125 + offset, 0], [180 + offset, 0]]
209
+ pdf.line_to 160 + offset, 40
210
+ end
211
+ pdf.fill_color "444444"
212
+ pdf.text_box "Say that out loud for me", :at => [210 + offset, header_height], :width => 60, :height => 80, :align => :center, :valign => :center, :overflow => :shrink_to_fit
204
213
 
205
- # Start Over
206
- x = doc_width
207
- pdf.fill_color "eeeeee"
208
- pdf.fill_and_stroke_rounded_rectangle [(doc_width - x), header_height], 100, header_height, default_radius
209
- pdf.fill_color "5c9c6d"
210
- pdf.stroke_color "25783b"
211
- pdf.fill_and_stroke_polygon([doc_width - x + 50, 75], [doc_width - x + 80, 50], [doc_width - x + 80, 20], [doc_width - x + 20, 20], [doc_width - x + 20, 50])
212
- pdf.stroke_color "888888"
213
- pdf.fill_color "666666"
214
- pdf.text_box "Start Over", :styles => [:bold], :at => [(doc_width - x + 10), header_height], :width => 80, :height => 80, :align => :center, :valign => :bottom, :overflow => :shrink_to_fit
214
+ # Start Over
215
+ x = doc_width
216
+ pdf.fill_color "eeeeee"
217
+ pdf.fill_and_stroke_rounded_rectangle [(doc_width - x), header_height], 100, header_height, default_radius
218
+ pdf.fill_color "5c9c6d"
219
+ pdf.stroke_color "25783b"
220
+ pdf.fill_and_stroke_polygon([doc_width - x + 50, 75], [doc_width - x + 80, 50], [doc_width - x + 80, 20], [doc_width - x + 20, 20], [doc_width - x + 20, 50])
221
+ pdf.stroke_color "888888"
222
+ pdf.fill_color "666666"
223
+ pdf.text_box "Start Over", :styles => [:bold], :at => [(doc_width - x + 10), header_height], :width => 80, :height => 80, :align => :center, :valign => :bottom, :overflow => :shrink_to_fit
215
224
 
216
- # Oops
217
- x = 210
218
- pdf.fill_color "eeeeee"
219
- pdf.fill_and_stroke_rounded_rectangle [(doc_width - x), header_height], 100, header_height, default_radius
220
- pdf.fill_color "6653a6"
221
- pdf.stroke_color "554a78"
222
- pdf.fill_and_stroke_polygon([doc_width - x + 50 - 7, 75], [doc_width - x + 50 + 7, 75], [doc_width - x + 50 + 7, 40], [doc_width - x + 50 - 7, 40])
223
- pdf.fill_and_stroke_polygon([doc_width - x + 50 - 7, 33], [doc_width - x + 50 + 7, 33], [doc_width - x + 50 + 7, 20], [doc_width - x + 50 - 7, 20])
224
- pdf.stroke_color "888888"
225
- pdf.fill_color "666666"
226
- pdf.text_box "Oops", :at => [(doc_width - x + 10), header_height], :width => 80, :height => 80, :align => :center, :valign => :bottom, :overflow => :shrink_to_fit
225
+ # Oops
226
+ x = 210
227
+ pdf.fill_color "eeeeee"
228
+ pdf.fill_and_stroke_rounded_rectangle [(doc_width - x), header_height], 100, header_height, default_radius
229
+ pdf.fill_color "6653a6"
230
+ pdf.stroke_color "554a78"
231
+ pdf.fill_and_stroke_polygon([doc_width - x + 50 - 7, 75], [doc_width - x + 50 + 7, 75], [doc_width - x + 50 + 7, 40], [doc_width - x + 50 - 7, 40])
232
+ pdf.fill_and_stroke_polygon([doc_width - x + 50 - 7, 33], [doc_width - x + 50 + 7, 33], [doc_width - x + 50 + 7, 20], [doc_width - x + 50 - 7, 20])
233
+ pdf.stroke_color "888888"
234
+ pdf.fill_color "666666"
235
+ pdf.text_box "Oops", :at => [(doc_width - x + 10), header_height], :width => 80, :height => 80, :align => :center, :valign => :bottom, :overflow => :shrink_to_fit
227
236
 
228
- # Stop
229
- x = 320
230
- pdf.fill_color "eeeeee"
231
- pdf.fill_and_stroke_rounded_rectangle [(doc_width - x), header_height], 100, header_height, default_radius
232
- pdf.fill_color "944747"
233
- pdf.stroke_color "693636"
234
- pdf.fill_and_stroke_polygon([doc_width - x + 39, 70], [doc_width - x + 61, 70], [doc_width - x + 75, 56], [doc_width - x + 75, 34], [doc_width - x + 61, 20], [doc_width - x + 39, 20], [doc_width - x + 25, 34], [doc_width - x + 25, 56])
235
- pdf.stroke_color "888888"
236
- pdf.fill_color "666666"
237
- pdf.text_box "Stop", :at => [(doc_width - x + 10), header_height], :width => 80, :height => 80, :align => :center, :valign => :bottom, :overflow => :shrink_to_fit
238
-
239
- # Clear
240
- x = 100
241
- pdf.fill_color "eeeeee"
242
- pdf.fill_and_stroke_rounded_rectangle [(doc_width - x), header_height], 100, header_height, default_radius
243
- pdf.stroke_color "666666"
244
- pdf.fill_color "888888"
245
- pdf.fill_and_stroke_polygon([doc_width - x + 10, 45], [doc_width - x + 35, 70], [doc_width - x + 90, 70], [doc_width - x + 90, 20], [doc_width - x + 35, 20])
246
- pdf.stroke_color "888888"
247
- pdf.fill_color "666666"
248
- pdf.text_box "Clear", :at => [(doc_width - x + 10), header_height], :width => 80, :height => 80, :align => :center, :valign => :bottom, :overflow => :shrink_to_fit
237
+ # Stop
238
+ x = 320
239
+ pdf.fill_color "eeeeee"
240
+ pdf.fill_and_stroke_rounded_rectangle [(doc_width - x), header_height], 100, header_height, default_radius
241
+ pdf.fill_color "944747"
242
+ pdf.stroke_color "693636"
243
+ pdf.fill_and_stroke_polygon([doc_width - x + 39, 70], [doc_width - x + 61, 70], [doc_width - x + 75, 56], [doc_width - x + 75, 34], [doc_width - x + 61, 20], [doc_width - x + 39, 20], [doc_width - x + 25, 34], [doc_width - x + 25, 56])
244
+ pdf.stroke_color "888888"
245
+ pdf.fill_color "666666"
246
+ pdf.text_box "Stop", :at => [(doc_width - x + 10), header_height], :width => 80, :height => 80, :align => :center, :valign => :bottom, :overflow => :shrink_to_fit
247
+
248
+ # Clear
249
+ x = 100
250
+ pdf.fill_color "eeeeee"
251
+ pdf.fill_and_stroke_rounded_rectangle [(doc_width - x), header_height], 100, header_height, default_radius
252
+ pdf.stroke_color "666666"
253
+ pdf.fill_color "888888"
254
+ pdf.fill_and_stroke_polygon([doc_width - x + 10, 45], [doc_width - x + 35, 70], [doc_width - x + 90, 70], [doc_width - x + 90, 20], [doc_width - x + 35, 20])
255
+ pdf.stroke_color "888888"
256
+ pdf.fill_color "666666"
257
+ pdf.text_box "Clear", :at => [(doc_width - x + 10), header_height], :width => 80, :height => 80, :align => :center, :valign => :bottom, :overflow => :shrink_to_fit
258
+ end
259
+ end
260
+ # footer
261
+ pdf.fill_color "bbbbbb"
262
+ obj['name'] = nil if obj['name'] == 'Unnamed Board'
263
+ if OBF::PDF.footer_text || obj['name']
264
+ text = [obj['name'], OBF::PDF.footer_text].compact.join(', ')
265
+ offset = options['pages'] ? 400 : 300
266
+ pdf.formatted_text_box [{:text => text, :link => OBF::PDF.footer_url}], :at => [doc_width - offset, text_height], :width => 300, :height => text_height, :align => :right, :valign => :center, :overflow => :shrink_to_fit
267
+ end
268
+ pdf.fill_color "000000"
269
+ if options['pages'] && page_num != 0
270
+ text_options = {:text => page_num.to_s}
271
+ text_options[:anchor] = "page1" if options['links']
272
+ pdf.formatted_text_box [text_options], :at => [doc_width - 100, text_height], :width => 100, :height => text_height, :align => :right, :valign => :center, :overflow => :shrink_to_fit
249
273
  end
250
274
  end
251
275
 
@@ -413,22 +437,6 @@ module OBF::PDF
413
437
  end
414
438
  end
415
439
  end
416
-
417
- # footer
418
- pdf.fill_color "bbbbbb"
419
- obj['name'] = nil if obj['name'] == 'Unnamed Board'
420
- pdf.font('Arial')
421
- if OBF::PDF.footer_text || obj['name']
422
- text = [obj['name'], OBF::PDF.footer_text].compact.join(', ')
423
- offset = options['pages'] ? 400 : 300
424
- pdf.formatted_text_box [{:text => text, :link => OBF::PDF.footer_url}], :at => [doc_width - offset, text_height], :width => 300, :height => text_height, :align => :right, :valign => :center, :overflow => :shrink_to_fit
425
- end
426
- pdf.fill_color "000000"
427
- if options['pages'] && page_num != 0
428
- text_options = {:text => page_num.to_s}
429
- text_options[:anchor] = "page1" if options['links']
430
- pdf.formatted_text_box [text_options], :at => [doc_width - 100, text_height], :width => 100, :height => text_height, :align => :right, :valign => :center, :overflow => :shrink_to_fit
431
- end
432
440
  end
433
441
  end
434
442
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: obf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.8.32
4
+ version: 0.9.8.37
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Whitmer
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-28 00:00:00.000000000 Z
11
+ date: 2021-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -147,6 +147,7 @@ files:
147
147
  - README.md
148
148
  - lib/Arial.ttf
149
149
  - lib/MiedingerBook.ttf
150
+ - lib/Sazanami-Hanazono-Mincho.ttf
150
151
  - lib/THFahKwangBold.ttf
151
152
  - lib/TimesNewRoman.ttf
152
153
  - lib/obf.rb
@@ -168,7 +169,7 @@ homepage: https://github.com/CoughDrop/obf
168
169
  licenses:
169
170
  - MIT
170
171
  metadata: {}
171
- post_install_message:
172
+ post_install_message:
172
173
  rdoc_options: []
173
174
  require_paths:
174
175
  - lib
@@ -183,9 +184,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
184
  - !ruby/object:Gem::Version
184
185
  version: '0'
185
186
  requirements: []
186
- rubyforge_project:
187
+ rubyforge_project:
187
188
  rubygems_version: 2.7.6
188
- signing_key:
189
+ signing_key:
189
190
  specification_version: 4
190
191
  summary: Open Board Format
191
192
  test_files: []