cbeta 3.7.10 → 3.8.0

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: fa8c0001a52f96df16ac52d46416bcf1630f841ea306940a3196e81ece5c1fac
4
- data.tar.gz: 655f8c0438ff07cfd0b73f3ad1f749cde2b44c38c7567a11dc2dcd9d31b5219f
3
+ metadata.gz: fdc6811da84a63c0696ba421fe426e21de327089cfa018cc8ec3252b7981caed
4
+ data.tar.gz: 77ee88f62ae4ac35506ca756c7df764a5d35fcf1b2d8ce98a05c578873ef3164
5
5
  SHA512:
6
- metadata.gz: a4d29529c018af7658c30da3350e75e295181df0ea86693be3ed8f63257fdbe7d1efcf6fbf311965de718fbf589ea8971c20eca3f8a296cad5a1c4b2d8205871
7
- data.tar.gz: b2f23a65ebc368bd5b7d19c21b1da96ba84fa4e21cebd7f2a32651f9ba571cc6fd76463d2483af619550a2cfcfafc2342ff07438a39e64246900b907904d7a24
6
+ metadata.gz: 9d5e52c2087cc1d4c05fb8d0757dd1e1bb8d4e9a42a1d2aeb6c11f3455358d018380a777a7aeed914be3a4474dd12060222fbaa4118bf82fc69e9bf3cab7d26e
7
+ data.tar.gz: abb54c0eaa239d7545e02ec957ec0648bc776a3d4c9f27f18a130d7f09164ea9ed0a7fbf9a0cac4480bdf98eec2282f94ef6b737ab8af659e6cd564212ee1755
checksums.yaml.gz.sig CHANGED
Binary file
@@ -1,7 +1,7 @@
1
1
  module CbetaShare
2
2
  def each_canon(xml_root)
3
3
  Dir.entries(xml_root).sort.each do |c|
4
- next unless c.match(/^#{CBETA::CANON}$/)
4
+ next unless c.match(CBETA::CANON_ID)
5
5
  yield(c)
6
6
  end
7
7
  end
@@ -192,9 +192,9 @@ class CBETA::P5aChecker
192
192
 
193
193
  def e_graphic(e)
194
194
  url = File.basename(e['url'])
195
- fn = File.join(@figures, @canon, url)
196
- unless File.exist? fn
197
- error "[E05] 圖檔 不存在, url: #{url}"
195
+ path = File.join(@figures, @canon, url)
196
+ unless File.exist? path
197
+ error "[E05] 圖檔 不存在, url: #{e['url']}, path: #{path}"
198
198
  end
199
199
  end
200
200
 
@@ -75,7 +75,7 @@ class CBETA::P5aToHTMLForEveryEdition
75
75
 
76
76
  def convert_all
77
77
  Dir.entries(@xml_root).sort.each do |c|
78
- next unless c.match(/^#{CBETA::CANON}$/)
78
+ next unless c.match(CBETA::CANON_ID)
79
79
  convert_canon(c)
80
80
  end
81
81
  end
@@ -124,7 +124,7 @@ class CBETA::P5aToText
124
124
 
125
125
  def convert_all
126
126
  Dir.entries(@xml_root).sort.each do |c|
127
- next unless c.match(/^#{CBETA::CANON}$/)
127
+ next unless c.match(CBETA::CANON_ID)
128
128
  handle_canon(c)
129
129
  end
130
130
  end
data/lib/cbeta.rb CHANGED
@@ -6,22 +6,36 @@
6
6
  require 'csv'
7
7
 
8
8
  class CBETA
9
- CANON = 'CC|DA|GA|GB|LC|TX|YP|ZS|ZW|[A-Z]'
9
+ # 藏經 ID, 例如 T, ZS
10
+ #
11
+ # 本身是 alternation, 已經包在 non-capturing group 裡,
12
+ # 所以插值到 regexp 時不需要 (也不應該) 再包一層 group:
13
+ # 正確: /\A#{CBETA::CANON}\z/
14
+ # 多餘: /\A(?:#{CBETA::CANON})\z/
15
+ # 若需要取出藏經 ID, 才用 capturing group 包起來: /^(#{CBETA::CANON})/
16
+ CANON = '(?:CC|DA|GA|GB|LC|TX|YP|ZS|ZW|[A-Z])'
10
17
  SORT_ORDER = %w(T X A K S F C D U P J L G M N ZS I ZW B GA GB Y LC TX YP CC)
11
18
  VOL3 = %w[A CC C G GA GB L M P U]
12
19
  DATA = File.join(File.dirname(__FILE__), 'data')
13
20
  PUNCS = ',.()[] 。‧.,、;?!:︰/()「」『』《》<>〈〉〔〕[]【】〖〗〃…—─ ~│┬▆△*+-='
14
-
21
+
15
22
  # 經號 (不含 Canon ID):
16
23
  # 四碼數字 T0001
17
24
  # 四碼數字 + 英文字母 T0150A, T0128a
18
25
  # 英文字母 + 三碼數字 JA041, ZWa073
19
- WORK_PART = '\d{4}[a-zA-Z]?|[ABa]\d{3}'
26
+ # CANON 一樣已自帶 non-capturing group。
27
+ WORK_PART = '(?:\d{4}[a-zA-Z]?|[ABa]\d{3})'
20
28
 
21
29
  # XML file 主檔名
22
30
  # GA010n0009
23
- BASENAME = "(?:#{CANON})\\d{2,3}n(?:#{WORK_PART})"
24
-
31
+ BASENAME = "#{CANON}\\d{2,3}n#{WORK_PART}"
32
+
33
+ # 整個字串就是 藏經 ID, 例如 "T", "ZS"
34
+ CANON_ID = /\A#{CANON}\z/
35
+
36
+ # 整個字串就是 典籍編號, 例如 "T0001", "JB271", "ZWa073"
37
+ WORK_ID = /\A#{CANON}#{WORK_PART}\z/
38
+
25
39
  # 由 行首資訊 取得 藏經 ID
26
40
  # @param linehead[String] 行首資訊, 例如 "T01n0001_p0001a01" 或 "GA009n0008_p0003a01"
27
41
  # @return [String] 藏經 ID,例如 "T" 或 "GA"
@@ -142,7 +156,7 @@ class CBETA
142
156
  # ex: J36nB348_p0284c01
143
157
  # @return [String] XML檔相對路徑,例如 "GA/GA009/GA009n0008.xml"
144
158
  def self.linehead_to_xml_file_path(linehead)
145
- if m = linehead.match(/^(?<work>(?<vol>(?<canon>#{CANON})\d+)n(?:#{WORK_PART})).*$/)
159
+ if m = linehead.match(/^(?<work>(?<vol>(?<canon>#{CANON})\d+)n#{WORK_PART}).*$/)
146
160
  File.join(m[:canon], m[:vol], m[:work]+'.xml')
147
161
  else
148
162
  nil
@@ -172,7 +186,7 @@ class CBETA
172
186
  # CBETA.linehead_to_s('T85n2838_p1291a03')
173
187
  # # return "T85, no. 2838, p. 1291, a03"
174
188
  def self.linehead_to_s(linehead)
175
- linehead.match(/^((?:#{CANON})\d+)n(.*)_p(\d+)([a-z]\d+)$/) {
189
+ linehead.match(/^(#{CANON}\d+)n(.*)_p(\d+)([a-z]\d+)$/) {
176
190
  return "#{$1}, no. #{$2}, p. #{$3}, #{$4}"
177
191
  }
178
192
  nil
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cbeta
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.10
4
+ version: 3.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ray Chou
metadata.gz.sig CHANGED
Binary file