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.
- checksums.yaml +4 -4
- data/lib/cbeta/p5a_checker.rb +23 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d0afcec06986d4abb932de0ec7095d8ecda4eeb3b7827798f1bf67e830baeea
|
4
|
+
data.tar.gz: 5af3540b82784566fefe59821c507cc36c66b56ca7855056573f66b31af14f14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 063bbde7b625bc97bb84a16eb47acb2da82876ab9e2474aec105e1da1dbe19e1f0a5e925f7c02ea1f59816429bc4d9f247f3e791e4137c4d870973f8946dce05
|
7
|
+
data.tar.gz: c274c8605e5cc1249edd667660d88314772bbb88c4e3c96342993ddc6840ceb25a9b28c87d7ed544f099890d90d99d1dded1068c67d65df1a6c455b877b4533c
|
data/lib/cbeta/p5a_checker.rb
CHANGED
@@ -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.
|
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.
|
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-
|
11
|
+
date: 2025-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: unihan2
|