cbeta 3.6.0 → 3.6.1

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cbeta/p5a_checker.rb +23 -1
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d57589aae785253515b3d2e73f7e5ee0f2267eb5cfd78ffc07a31cda853e0dc4
4
- data.tar.gz: 636713370e0c81c2b25121be8aa58f4d959eb24c0297f64d6a6300431848b805
3
+ metadata.gz: 5d0afcec06986d4abb932de0ec7095d8ecda4eeb3b7827798f1bf67e830baeea
4
+ data.tar.gz: 5af3540b82784566fefe59821c507cc36c66b56ca7855056573f66b31af14f14
5
5
  SHA512:
6
- metadata.gz: de9137c36aad2f633b1b682d7b22a32d99d260b7e2d5a506bd404a2a13596098755884da9292dacf6692f9751b1744c9f8eccdd5aacc8670c66cadd0ab94a287
7
- data.tar.gz: 8885756792aeb5e473fbf4ffa638c03ba330156a10e7f800464146c93b81defb9a7b8ed5103c6b9cee010c6714b3e361eb1ae0e685dd9f94fc29eb9f2dab1fdc
6
+ metadata.gz: 063bbde7b625bc97bb84a16eb47acb2da82876ab9e2474aec105e1da1dbe19e1f0a5e925f7c02ea1f59816429bc4d9f247f3e791e4137c4d870973f8946dce05
7
+ data.tar.gz: c274c8605e5cc1249edd667660d88314772bbb88c4e3c96342993ddc6840ceb25a9b28c87d7ed544f099890d90d99d1dded1068c67d65df1a6c455b877b4533c
@@ -49,6 +49,16 @@ class CBETA::P5aChecker
49
49
  end
50
50
  end
51
51
 
52
+ def e_app(e)
53
+ if e['type'] == 'star'
54
+ n = e['corresp'].delete_prefix('#')
55
+ unless @notes.include?(n)
56
+ error "lb: #{@lb}, corresp: #{n}", type: "[E03] 星號校勘 app 沒有對應的 note"
57
+ end
58
+ end
59
+ traverse(e)
60
+ end
61
+
52
62
  def e_g(e)
53
63
  gid = e['ref'][1..-1]
54
64
  unless @gaijis.key? gid
@@ -86,6 +96,7 @@ class CBETA::P5aChecker
86
96
  unless e.key?('wit')
87
97
  error "lem 缺少 wit 屬性"
88
98
  end
99
+ traverse(e)
89
100
  end
90
101
 
91
102
  def e_rdg(e)
@@ -107,7 +118,7 @@ class CBETA::P5aChecker
107
118
  Dir.entries(folder).sort.each do |f|
108
119
  next if f.start_with? '.'
109
120
  @vol = f
110
- $stderr.puts @vol + ' '
121
+ $stderr.print "#{@vol} "
111
122
  path = File.join(folder, @vol)
112
123
  handle_vol(path)
113
124
  end
@@ -125,6 +136,7 @@ class CBETA::P5aChecker
125
136
  if doc.errors.empty?
126
137
  doc.remove_namespaces!
127
138
  @lbs = Set.new
139
+ read_notes(doc)
128
140
  traverse(doc.root)
129
141
  else
130
142
  @errors << "錯誤: #{@basename} not well-formed\n"
@@ -133,6 +145,7 @@ class CBETA::P5aChecker
133
145
 
134
146
  def handle_node(e)
135
147
  case e.name
148
+ when 'app' then e_app(e)
136
149
  when 'g' then e_g(e)
137
150
  when 'graphic' then e_graphic(e)
138
151
  when 'lb' then e_lb(e)
@@ -149,6 +162,15 @@ class CBETA::P5aChecker
149
162
  handle_file(path)
150
163
  end
151
164
  end
165
+
166
+ def read_notes(doc)
167
+ @notes = Set.new
168
+ doc.xpath('//note').each do |e|
169
+ if e.key?('n')
170
+ @notes << e['n']
171
+ end
172
+ end
173
+ end
152
174
 
153
175
  def traverse(e)
154
176
  e.children.each { |c|
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: 3.6.0
4
+ version: 3.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ray Chou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-02 00:00:00.000000000 Z
11
+ date: 2025-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unihan2