cbeta 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
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