cbeta 1.1.1 → 1.1.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
  SHA1:
3
- metadata.gz: 1d32d9bafbfe3851c5f515c8efc2a6911a00a48c
4
- data.tar.gz: 65eb0b40419c9ffcd583a98971e263d17b36a85d
3
+ metadata.gz: bb15f5b135465307d5d432fd1760a26f2e5ce2b2
4
+ data.tar.gz: afba7a55bc4cfcae52a9238c55664163361aa1df
5
5
  SHA512:
6
- metadata.gz: c58d630e10c54298c3db15e1c6d154be4b7c3bab835ac495040d2563b20e389f343a341805b472316020782105b924f560166a3dc31d3ffe9c2ffa5a8906a1fa
7
- data.tar.gz: a27562a6385befad6767ffcb0ac933fd06b5ee504ef581b6ff1b272683adc8353298ad2f034be845644b3ddb03ec2ff0b91250f7a553cbf41562c068c3b8b119
6
+ metadata.gz: 567a960b85aa16bd7ca3f60084d82c2953ceaaf63260c7640ee53172e1af118742f5b3e24d2f9767cc504e54cd20f1fd6ad0892bf2c9af01cf023612fb3965b0
7
+ data.tar.gz: e27de657de8b2bbeb09ab052d1786188ff510ff35b75197b00c050b371f1fcff4fbd33045d17c2043866f6302ebe6f1f5c27a8dde61cc400cc0a726acbff855e
@@ -67,10 +67,7 @@ class CBETA::P5aToEPUB
67
67
  # @param output_paath [String] 輸出 EPUB 檔路徑
68
68
  def convert_file(input_path, output_path)
69
69
  return false unless input_path.end_with? '.xml'
70
-
71
- FileUtils.remove_dir(@temp_folder, force=true)
72
- FileUtils::mkdir_p @temp_folder
73
-
70
+
74
71
  @book_id = File.basename(input_path, ".xml")
75
72
 
76
73
  sutra_init
@@ -142,6 +139,11 @@ class CBETA::P5aToEPUB
142
139
 
143
140
  private
144
141
 
142
+ def clear_temp_folder
143
+ FileUtils.remove_dir(@temp_folder, force=true)
144
+ FileUtils::mkdir_p @temp_folder
145
+ end
146
+
145
147
  def copy_static_files(src, dest)
146
148
  dest = File.join(@temp_folder, dest)
147
149
  FileUtils.copy(src, dest)
@@ -731,6 +733,8 @@ eos
731
733
  end
732
734
 
733
735
  def sutra_init
736
+ clear_temp_folder
737
+
734
738
  s = NAV_TEMPLATE % '<ol></ol>'
735
739
  @nav_doc = Nokogiri::XML(s)
736
740
 
@@ -23,10 +23,18 @@ class CBETA::P5aToText
23
23
  # @param xml_root [String] 來源 CBETA XML P5a 路徑
24
24
  # @param output_root [String] 輸出 Text 路徑
25
25
  # @param format [String] 輸出格式,例:'app'
26
- def initialize(xml_root, output_root, format=nil)
26
+ # @option opts [String] :format 輸出格式,例:'app',預設是 normal
27
+ # @option opts [String] :encoding 輸出編碼,預設 'UTF-8'
28
+ def initialize(xml_root, output_root, opts={})
27
29
  @xml_root = xml_root
28
30
  @output_root = output_root
29
- @format = format
31
+
32
+ @settings = {
33
+ format: nil,
34
+ encoding: 'UTF-8'
35
+ }
36
+ @settings.merge!(opts)
37
+
30
38
  @cbeta = CBETA.new
31
39
  @gaijis = CBETA::Gaiji.new
32
40
  end
@@ -127,13 +135,13 @@ class CBETA::P5aToText
127
135
 
128
136
  def handle_byline(e)
129
137
  r = traverse(e)
130
- r += @format=='app' ? "\t" : "\n"
138
+ r += @settings[:format]=='app' ? "\t" : "\n"
131
139
  r
132
140
  end
133
141
 
134
142
  def handle_cell(e)
135
143
  r = traverse(e)
136
- r += @format=='app' ? "\t" : "\n"
144
+ r += @settings[:format]=='app' ? "\t" : "\n"
137
145
  r
138
146
  end
139
147
 
@@ -157,13 +165,13 @@ class CBETA::P5aToText
157
165
 
158
166
  def handle_docNumber(e)
159
167
  r = traverse(e)
160
- r += @format == 'app' ? "\t" : "\n"
168
+ r += @settings[:format] == 'app' ? "\t" : "\n"
161
169
  r
162
170
  end
163
171
 
164
172
  def handle_figure(e)
165
173
  r = traverse(e)
166
- r += @format == 'app' ? "\t" : "\n"
174
+ r += @settings[:format] == 'app' ? "\t" : "\n"
167
175
  r
168
176
  end
169
177
 
@@ -212,24 +220,24 @@ class CBETA::P5aToText
212
220
 
213
221
  def handle_head(e)
214
222
  r = traverse(e)
215
- r += @format == 'app' ? "\t" : "\n"
223
+ r += @settings[:format] == 'app' ? "\t" : "\n"
216
224
  r
217
225
  end
218
226
 
219
227
  def handle_item(e)
220
228
  r = traverse(e)
221
- r += @format == 'app' ? "\t" : "\n"
229
+ r += @settings[:format] == 'app' ? "\t" : "\n"
222
230
  end
223
231
 
224
232
  def handle_juan(e)
225
233
  r = traverse(e)
226
- r += @format == 'app' ? "\t" : "\n"
234
+ r += @settings[:format] == 'app' ? "\t" : "\n"
227
235
  r
228
236
  end
229
237
 
230
238
  def handle_l(e)
231
239
  r = traverse(e)
232
- if @format == 'app'
240
+ if @settings[:format] == 'app'
233
241
  r += "\t"
234
242
  else
235
243
  r += "\n" unless @lg_type == 'abnormal'
@@ -239,7 +247,7 @@ class CBETA::P5aToText
239
247
 
240
248
  def handle_lb(e)
241
249
  r = ''
242
- if @format == 'app'
250
+ if @settings[:format] == 'app'
243
251
  r += "\n#{e['n']}║"
244
252
  end
245
253
  unless @next_line_buf.empty?
@@ -264,7 +272,7 @@ class CBETA::P5aToText
264
272
 
265
273
  def handle_list(e)
266
274
  r = ''
267
- r += "\n" unless @format == 'app'
275
+ r += "\n" unless @settings[:format] == 'app'
268
276
  r + traverse(e)
269
277
  end
270
278
 
@@ -334,7 +342,7 @@ class CBETA::P5aToText
334
342
 
335
343
  def handle_p(e)
336
344
  r = traverse(e)
337
- r += @format == 'app' ? "\t" : "\n"
345
+ r += @settings[:format] == 'app' ? "\t" : "\n"
338
346
  r
339
347
  end
340
348
 
@@ -510,15 +518,18 @@ class CBETA::P5aToText
510
518
  end
511
519
  end
512
520
  text = frag.content
513
- text = appify(text) if @format == 'app'
521
+ text = appify(text) if @settings[:format] == 'app'
514
522
 
523
+ ed2 = ed.sub(/^【(.*?)】$/, '\1')
515
524
  if ed == @orig
516
- fn = "#{ed}-orig.txt"
525
+ fn = "#{ed2}-orig.txt"
517
526
  else
518
- fn = "#{ed}.txt"
527
+ fn = "#{ed2}.txt"
519
528
  end
520
529
  output_path = File.join(folder, fn)
521
- File.write(output_path, text)
530
+ fo = File.open(output_path, 'w', encoding: @settings[:encoding])
531
+ fo.write(text)
532
+ fo.close
522
533
  end
523
534
  end
524
535
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cbeta
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ray Chou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-02 00:00:00.000000000 Z
11
+ date: 2015-10-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby gem for use Chinese Buddhist Text resources made by CBETA (http://www.cbeta.org).
14
14
  email: zhoubx@gmail.com