cbeta 3.6.16 → 3.7.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.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/cbeta.rb +29 -14
  4. data.tar.gz.sig +0 -0
  5. metadata +31 -4
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54335ea806bf1c208341687f6028b43919452a9227cc72702dc2e3c39bcc0930
4
- data.tar.gz: de5b6004c9313c55b8cc4b0bf9bbf04a8dffdadf2dcf12a850b26e12fe0e6132
3
+ metadata.gz: 22ece655cfcd0c962034b74bd4bb530a21f034422b183540588965eda67b7fb7
4
+ data.tar.gz: c1ea4749573d1eaee1f6635dcd1c8c2b818f94a13f9075e8ddde39b96baa3946
5
5
  SHA512:
6
- metadata.gz: 9bd998e632c0e2124d9c068ecb2abbe799a4545c36e242410ccb8ae7ccaf4736724508cbcfc51705427deeb413603f3600c324120798e326ee93f5718158960f
7
- data.tar.gz: 955c2c07ad20786dd38c974ffcec17b0a27391a086f7d6556ec99f493a4f2b9569d47f2b211573776e885d396d45f98ab12dba661bee868fdd8462e07dbf9eae
6
+ metadata.gz: df5dca4c13c0e1be0d8142145685b350d0773073b3f8fe378d68e67ce49f7eae24f12f455d0d74bb2c5c91dcb4c7fa28576d31cc5da44d43ee854878d4903cac
7
+ data.tar.gz: 73dacb3d58b47812309f6f16c9b11c30407cd0b9ff390d6648bba89b91b5a2d10366ea4283888e3f4ffc1fa6536a5633e93c8b91c9765d9607669f49c05a7452
checksums.yaml.gz.sig ADDED
Binary file
data/lib/cbeta.rb CHANGED
@@ -12,6 +12,16 @@ class CBETA
12
12
  DATA = File.join(File.dirname(__FILE__), 'data')
13
13
  PUNCS = ',.()[] 。‧.,、;?!:︰/()「」『』《》<>〈〉〔〕[]【】〖〗〃…—─ ~│┬▆△*+-='
14
14
 
15
+ # 經號 (不含 Canon ID):
16
+ # 四碼數字 T0001
17
+ # 四碼數字 + 英文字母 T0150A, T0128a
18
+ # 英文字母 + 三碼數字 JA041, ZWa073
19
+ WORK_PART = '\d{4}[a-zA-Z]?|[ABa]\d{3}'
20
+
21
+ # XML file 主檔名
22
+ # GA010n0009
23
+ BASENAME = "(?:#{CANON})\\d{2,3}n(?:#{WORK_PART})"
24
+
15
25
  # 由 行首資訊 取得 藏經 ID
16
26
  # @param linehead[String] 行首資訊, 例如 "T01n0001_p0001a01" 或 "GA009n0008_p0003a01"
17
27
  # @return [String] 藏經 ID,例如 "T" 或 "GA"
@@ -46,6 +56,22 @@ class CBETA
46
56
  r += 'p' + lb
47
57
  r
48
58
  end
59
+
60
+ # 由 XML檔主檔名 取得 典籍編號
61
+ # @param fn[String] 檔名, 例如 "T01n0001" 或 "GA009n0008"
62
+ # @return [String] 典籍編號,例如 "T0001" 或 "GA0008"
63
+ def self.get_work_id_from_file_basename(fn)
64
+ r = fn.sub(/^(#{CANON})\d{2,3}n(.*)$/, '\1\2')
65
+ r = 'T0220' if r.start_with? 'T0220'
66
+ r
67
+ end
68
+
69
+ # 由 行首資訊 取得 典籍編號
70
+ # @param linehead[String] CBETA 行首資訊,例如 "T01n0001_p0001a01" 或 "T25n1510ap0757b29"
71
+ # @return [String] 典籍編號,例如 "T0001" 或 "T1510a"
72
+ def self.get_work_id_from_linehead(linehead)
73
+ linehead.sub(/^(#{CANON})\d{2,3}n(#{WORK_PART}).*$/, '\1\2')
74
+ end
49
75
 
50
76
  # 由 冊號 及 典籍編號 取得 XML 主檔名
51
77
  # @param vol[String] 冊號, 例如 "T01" 或 "GA009"
@@ -114,24 +140,13 @@ class CBETA
114
140
  # ex: J36nB348_p0284c01
115
141
  # @return [String] XML檔相對路徑,例如 "GA/GA009/GA009n0008.xml"
116
142
  def self.linehead_to_xml_file_path(linehead)
117
- # 經號: 四碼數字 + 英文字母 或如 嘉興藏 英文字母 + 三碼數字
118
- w = '(?:\d+[a-zA-Z]?|[AB]\d{3})'
119
- if m = linehead.match(/^(?<work>(?<vol>(?<canon>#{CANON})\d+)n#{w}).*$/)
143
+ if m = linehead.match(/^(?<work>(?<vol>(?<canon>#{CANON})\d+)n(?:#{WORK_PART})).*$/)
120
144
  File.join(m[:canon], m[:vol], m[:work]+'.xml')
121
145
  else
122
146
  nil
123
147
  end
124
- end
125
-
126
- # 由 XML檔主檔名 取得 典籍編號
127
- # @param fn[String] 檔名, 例如 "T01n0001" 或 "GA009n0008"
128
- # @return [String] 典籍編號,例如 "T0001" 或 "GA0008"
129
- def self.get_work_id_from_file_basename(fn)
130
- r = fn.sub(/^(#{CANON})\d{2,3}n(.*)$/, '\1\2')
131
- r = 'T0220' if r.start_with? 'T0220'
132
- r
133
- end
134
-
148
+ end
149
+
135
150
  # 由「藏經 ID」取得「排序用編號」,例如:傳入 "T" 回傳 "A";傳入 "X" 回傳 "B"
136
151
  # @param canon [String] 藏經 ID
137
152
  # @return [String] 排序用編號
data.tar.gz.sig ADDED
Binary file
metadata CHANGED
@@ -1,13 +1,40 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cbeta
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.16
4
+ version: 3.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ray Chou
8
8
  bindir: bin
9
- cert_chain: []
10
- date: 2025-07-29 00:00:00.000000000 Z
9
+ cert_chain:
10
+ - |
11
+ -----BEGIN CERTIFICATE-----
12
+ MIIEaDCCAtCgAwIBAgIBATANBgkqhkiG9w0BAQsFADA9MQ8wDQYDVQQDDAZ6aG91
13
+ YngxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2NvbTAe
14
+ Fw0yNTEwMTMwNjM4MjdaFw0yNjEwMTMwNjM4MjdaMD0xDzANBgNVBAMMBnpob3Vi
15
+ eDEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29tMIIB
16
+ ojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAiyVQ5WW6oy4b8drYYebSMVi+
17
+ EC1xHNgAuTmlKF0w/Z2mRwL7rTOt/d3zUpTGRwBiqz3JF4ZAJksei6y7UzbA4qDb
18
+ WZDv+s6y6SZfeB+1JLDQOGJ+XxiM6ezsgMyZIeAOXciELTJh/x/R6pRatVDPyOAB
19
+ E1uv/2qGTP8Vy76fH0N9E5WU7xccPWR9uFlPKcpiAS1werNVS8/UCSyeS90o5ckE
20
+ rp5jOTpy7Dtzlz82qMDFGFaLh1Zo7SYeNEJlroZYec9vdnYUWmyT52l12IH6uFll
21
+ DvnhRkwVIdQ9l2as1PQx9eg69Jf9qSCAuOXMVojNkwWLsezyjB5CcidL8wx8Sifg
22
+ mKWoeNrWYbwH1h9B1dzX2jIwqcr8BNI2usK42YWyxiJGbQr+SBHhXEt25s3AVH+P
23
+ YUby2af2Gcb5ltpqqdXFoO8PpDODWtUcHM3NTL2uGbKvq1Ai0GhPJNHPco2SW9DA
24
+ AGQFSEgJj7BlHDHcYpOXfsuQxnKXeeCw6dVmyYfPAgMBAAGjczBxMAkGA1UdEwQC
25
+ MAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBTqBx17iPvliZ0RKL1RZluB50Uc/jAb
26
+ BgNVHREEFDASgRB6aG91YnhAZ21haWwuY29tMBsGA1UdEgQUMBKBEHpob3VieEBn
27
+ bWFpbC5jb20wDQYJKoZIhvcNAQELBQADggGBAF+XmQPhEcuiRl/Zb+1vIBnR8Z8Q
28
+ mTJm4inGy8boLAz71Pg04yI+moj7A0CSS/xbv1MtZqOzTxGFm16xLczY4k6BuRof
29
+ C9usw3Z7val3rHRzmdhLqkX4ALrLzd/G0uirARIQ08N5r0ETIkNFCdePtRHH8uk3
30
+ Er0v4v4QT9ATyrAs4iImWlhmWZIEXOdhBqW01c9/cm5Gcg/WBjdEplpJtGGnMkdc
31
+ zQQscleWWbCX7QKjR9rSCPNteUuzAoS8gNCbLNQF88aOFzm704dePli3WNL/GTvy
32
+ frO5NqUXpwCOzgCbMKfxYBw87WDA8yAE2Cn3Kw1bvX/fheUNr++QyVY8sqVDOlUC
33
+ TovfZCtNma/D0DD8q8enl7UEwKWEs3IC+8bu6jlzYn/6BcLTkKwzB8NXSLVGkFva
34
+ xyQse8slbARanDyyT6HCYtlaKD9WYw647tkJhyY2GniloCNcOJS0URvhlulLzJYg
35
+ 9CrAxVAO2NMeM6tbxg1VjYbqopjoLCwLdAJouA==
36
+ -----END CERTIFICATE-----
37
+ date: 2025-10-13 00:00:00.000000000 Z
11
38
  dependencies:
12
39
  - !ruby/object:Gem::Dependency
13
40
  name: unihan2
@@ -118,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
145
  - !ruby/object:Gem::Version
119
146
  version: '0'
120
147
  requirements: []
121
- rubygems_version: 3.6.9
148
+ rubygems_version: 3.7.2
122
149
  specification_version: 4
123
150
  summary: CBETA Tools
124
151
  test_files: []
metadata.gz.sig ADDED
Binary file