mk_semi_lattice 0.4.3 → 0.4.4
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/abbrev_checker/abbrev_check.rb +15 -2
- data/lib/abbrev_checker/abbrev_sample.tgz +0 -0
- data/lib/abbrev_checker/abbrev_yamls/.semi_lattice/icons/document.png +0 -0
- data/lib/abbrev_checker/abbrev_yamls/.semi_lattice/icons/folder.png +0 -0
- data/lib/abbrev_checker/abbrev_yamls/.semi_lattice/semi_lattice.yaml +304 -0
- data/lib/abbrev_checker/abbrev_yamls/command_tree.yaml +29 -18
- data/lib/abbrev_checker/abbrev_yamls/command_tree_node_edge.yaml +174 -0
- data/lib/abbrev_checker/docs/abbrev_checker/abbrev_checker.003.png +0 -0
- data/lib/abbrev_checker/docs/abbrev_checker/abbrev_checker.004.png +0 -0
- data/lib/abbrev_checker/docs/abbrev_checker.key +0 -0
- data/lib/abbrev_checker/docs/readme.org +13 -1
- data/lib/docs/short_intro/short_intro.001.png +0 -0
- data/lib/docs/short_intro/short_intro.002.png +0 -0
- data/lib/docs/short_intro/short_intro.003.png +0 -0
- data/lib/docs/short_intro/short_intro.004.png +0 -0
- data/lib/docs/short_intro.html +125 -0
- data/lib/docs/short_intro.key +0 -0
- data/lib/docs/short_intro.org +24 -0
- data/lib/hc.rb +14 -0
- data/lib/mk_semi_lattice/version.rb +1 -1
- data/lib/plot/plot.rb +166 -0
- data/lib/voca_buil/Rakefile_mk_sample_tgz.rake +162 -0
- data/lib/voca_buil/docs/readme.html +87 -36
- data/lib/voca_buil/docs/readme.org +13 -2
- data/lib/voca_buil/docs/voca_buil/voca_buil.001.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.002.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.003.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.004.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.005.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.006.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.007.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.008.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.009.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.010.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.011.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.012.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.013.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.014.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.015.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.016.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.017.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.018.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.019.png +0 -0
- data/lib/voca_buil/docs/voca_buil/voca_buil.020.png +0 -0
- data/lib/voca_buil/docs/voca_buil.key +0 -0
- data/lib/voca_buil/etymological_builder_check_sample.tgz +0 -0
- data/lib/voca_buil/multi_check.rb +53 -27
- data/readme.html +28 -36
- data/{README.org → readme.org} +2 -6
- metadata +18 -7
- data/.DS_Store +0 -0
- data/lib/abbrev_checker/check_log.yaml +0 -13
- data/lib/abbrev_checker/word_log.yaml +0 -18
- data/lib/voca_buil/docs/voca_buil.pdf +0 -0
- data/lib/voca_buil/docs/voca_buil.png +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
4
4
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="jp" xml:lang="jp">
|
|
5
5
|
<head>
|
|
6
|
-
<!-- 2026-01-
|
|
6
|
+
<!-- 2026-01-15 Thu 17:20 -->
|
|
7
7
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
9
9
|
<title>hc checkの使い方</title>
|
|
@@ -27,24 +27,25 @@
|
|
|
27
27
|
<h2>Table of Contents</h2>
|
|
28
28
|
<div id="text-table-of-contents" role="doc-toc">
|
|
29
29
|
<ul>
|
|
30
|
-
<li><a href="#
|
|
31
|
-
<li><a href="#
|
|
32
|
-
<li><a href="#
|
|
30
|
+
<li><a href="#orgd4cfdbb">1. name</a></li>
|
|
31
|
+
<li><a href="#org861776c">2. install</a></li>
|
|
32
|
+
<li><a href="#orgf6412d9">3. usage</a>
|
|
33
33
|
<ul>
|
|
34
|
-
<li><a href="#
|
|
35
|
-
<li><a href="#
|
|
36
|
-
<li><a href="#
|
|
37
|
-
<li><a href="#
|
|
34
|
+
<li><a href="#org1c3543c">3.1. hc check</a></li>
|
|
35
|
+
<li><a href="#orgf97f457">3.2. tree構造</a></li>
|
|
36
|
+
<li><a href="#org2b3ecb4">3.3. iterative check(#1)</a></li>
|
|
37
|
+
<li><a href="#org84c543e">3.4. single check(#2)</a></li>
|
|
38
38
|
</ul>
|
|
39
39
|
</li>
|
|
40
|
-
<li><a href="#
|
|
41
|
-
<li><a href="#
|
|
42
|
-
<li><a href="#
|
|
40
|
+
<li><a href="#org903ea6e">4. help</a></li>
|
|
41
|
+
<li><a href="#org78fd54c">5. dir_tree.yaml編集</a></li>
|
|
42
|
+
<li><a href="#orga87872a">6. reverse and plot</a></li>
|
|
43
|
+
<li><a href="#org22e1ff0">7. references</a></li>
|
|
43
44
|
</ul>
|
|
44
45
|
</div>
|
|
45
46
|
</div>
|
|
46
|
-
<div id="outline-container-
|
|
47
|
-
<h2 id="
|
|
47
|
+
<div id="outline-container-orgd4cfdbb" class="outline-2">
|
|
48
|
+
<h2 id="orgd4cfdbb"><span class="section-number-2">1.</span> name</h2>
|
|
48
49
|
<div class="outline-text-2" id="text-1">
|
|
49
50
|
<ul class="org-ul">
|
|
50
51
|
<li>hc checkは英単語のetymological(語源に基づく) buildingを行うclaです.</li>
|
|
@@ -54,8 +55,8 @@
|
|
|
54
55
|
</ul>
|
|
55
56
|
</div>
|
|
56
57
|
</div>
|
|
57
|
-
<div id="outline-container-
|
|
58
|
-
<h2 id="
|
|
58
|
+
<div id="outline-container-org861776c" class="outline-2">
|
|
59
|
+
<h2 id="org861776c"><span class="section-number-2">2.</span> install</h2>
|
|
59
60
|
<div class="outline-text-2" id="text-2">
|
|
60
61
|
<div class="org-src-container">
|
|
61
62
|
<pre class="src src-bash">> sudo gem install mk_semi_lattice <span style="color: #7f7f7f;"># </span><span style="color: #7f7f7f;">install mk_sl and hc</span>
|
|
@@ -65,8 +66,8 @@
|
|
|
65
66
|
</div>
|
|
66
67
|
</div>
|
|
67
68
|
</div>
|
|
68
|
-
<div id="outline-container-
|
|
69
|
-
<h2 id="
|
|
69
|
+
<div id="outline-container-orgf6412d9" class="outline-2">
|
|
70
|
+
<h2 id="orgf6412d9"><span class="section-number-2">3.</span> usage</h2>
|
|
70
71
|
<div class="outline-text-2" id="text-3">
|
|
71
72
|
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
|
72
73
|
|
|
@@ -76,7 +77,7 @@
|
|
|
76
77
|
</colgroup>
|
|
77
78
|
<tbody>
|
|
78
79
|
<tr>
|
|
79
|
-
<td class="org-left"
|
|
80
|
+
<td class="org-left"><img src="./voca_buil/voca_buil.003.png" alt="voca_buil.003.png" /></td>
|
|
80
81
|
</tr>
|
|
81
82
|
|
|
82
83
|
<tr>
|
|
@@ -85,8 +86,8 @@
|
|
|
85
86
|
</tbody>
|
|
86
87
|
</table>
|
|
87
88
|
</div>
|
|
88
|
-
<div id="outline-container-
|
|
89
|
-
<h3 id="
|
|
89
|
+
<div id="outline-container-org1c3543c" class="outline-3">
|
|
90
|
+
<h3 id="org1c3543c"><span class="section-number-3">3.1.</span> hc check</h3>
|
|
90
91
|
<div class="outline-text-3" id="text-3-1">
|
|
91
92
|
<p>
|
|
92
93
|
mk_semi_latticeをgemでinstallすると,
|
|
@@ -103,16 +104,16 @@ hc(hyper cardの略)も同時にinstallされます.
|
|
|
103
104
|
</p>
|
|
104
105
|
</div>
|
|
105
106
|
</div>
|
|
106
|
-
<div id="outline-container-
|
|
107
|
-
<h3 id="
|
|
107
|
+
<div id="outline-container-orgf97f457" class="outline-3">
|
|
108
|
+
<h3 id="orgf97f457"><span class="section-number-3">3.2.</span> tree構造</h3>
|
|
108
109
|
<div class="outline-text-3" id="text-3-2">
|
|
109
110
|
<p>
|
|
110
111
|
展開された_stack_init_check_dirsはtreeで確認できます.
|
|
111
112
|
</p>
|
|
112
113
|
</div>
|
|
113
114
|
</div>
|
|
114
|
-
<div id="outline-container-
|
|
115
|
-
<h3 id="
|
|
115
|
+
<div id="outline-container-org2b3ecb4" class="outline-3">
|
|
116
|
+
<h3 id="org2b3ecb4"><span class="section-number-3">3.3.</span> iterative check(#1)</h3>
|
|
116
117
|
<div class="outline-text-3" id="text-3-3">
|
|
117
118
|
<p>
|
|
118
119
|
_stack_init_check_dirs上で
|
|
@@ -127,8 +128,8 @@ _stack_init_check_dirs上で
|
|
|
127
128
|
</p>
|
|
128
129
|
</div>
|
|
129
130
|
</div>
|
|
130
|
-
<div id="outline-container-
|
|
131
|
-
<h3 id="
|
|
131
|
+
<div id="outline-container-org84c543e" class="outline-3">
|
|
132
|
+
<h3 id="org84c543e"><span class="section-number-3">3.4.</span> single check(#2)</h3>
|
|
132
133
|
<div class="outline-text-3" id="text-3-4">
|
|
133
134
|
<p>
|
|
134
135
|
間違いの多かったdirに移動(cd)してチェックを
|
|
@@ -145,9 +146,24 @@ _stack_init_check_dirs上で
|
|
|
145
146
|
</div>
|
|
146
147
|
</div>
|
|
147
148
|
</div>
|
|
148
|
-
<div id="outline-container-
|
|
149
|
-
<h2 id="
|
|
149
|
+
<div id="outline-container-org903ea6e" class="outline-2">
|
|
150
|
+
<h2 id="org903ea6e"><span class="section-number-2">4.</span> help</h2>
|
|
150
151
|
<div class="outline-text-2" id="text-4">
|
|
152
|
+
<div class="org-src-container">
|
|
153
|
+
<pre class="src src-zsh">> hc abbrev -h
|
|
154
|
+
Usage: hc check [options]
|
|
155
|
+
-f, --file FILE YAML file to use
|
|
156
|
+
-a, --answer NUM <span style="color: #7f7f7f;"># </span><span style="color: #7f7f7f;">not implemented</span>
|
|
157
|
+
-q, --quiz NUM Number of quiz(def 5)
|
|
158
|
+
-i, --iterative [NUM] Test iteratively (<span style="color: #2e8b57;">num</span>=2)
|
|
159
|
+
--install Install sample abbrev data
|
|
160
|
+
</pre>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
<div id="outline-container-org78fd54c" class="outline-2">
|
|
165
|
+
<h2 id="org78fd54c"><span class="section-number-2">5.</span> dir_tree.yaml編集</h2>
|
|
166
|
+
<div class="outline-text-2" id="text-5">
|
|
151
167
|
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
|
152
168
|
|
|
153
169
|
|
|
@@ -156,7 +172,7 @@ _stack_init_check_dirs上で
|
|
|
156
172
|
</colgroup>
|
|
157
173
|
<tbody>
|
|
158
174
|
<tr>
|
|
159
|
-
<td class="org-left"><img src="./voca_buil/voca_buil.
|
|
175
|
+
<td class="org-left"><img src="./voca_buil/voca_buil.004.png" alt="voca_buil.004.png" /></td>
|
|
160
176
|
</tr>
|
|
161
177
|
|
|
162
178
|
<tr>
|
|
@@ -166,8 +182,13 @@ _stack_init_check_dirs上で
|
|
|
166
182
|
</table>
|
|
167
183
|
<p>
|
|
168
184
|
Answers-Quizはdir_tree.yamlから取り出しています.
|
|
185
|
+
自分の進捗に合わせて編集していってください.
|
|
186
|
+
消してしまわずに'#'でコメントアウトするのが正しいやり方.
|
|
169
187
|
</p>
|
|
170
188
|
|
|
189
|
+
<p>
|
|
190
|
+
さらに,
|
|
191
|
+
</p>
|
|
171
192
|
<pre class="example">
|
|
172
193
|
> hc stack
|
|
173
194
|
</pre>
|
|
@@ -178,13 +199,43 @@ Answers-Quizはdir_tree.yamlから取り出しています.
|
|
|
178
199
|
</p>
|
|
179
200
|
</div>
|
|
180
201
|
</div>
|
|
181
|
-
<div id="outline-container-
|
|
182
|
-
<h2 id="
|
|
183
|
-
</div>
|
|
184
|
-
|
|
185
|
-
<div id="outline-container-orgdc57de9" class="outline-2">
|
|
186
|
-
<h2 id="orgdc57de9"><span class="section-number-2">6.</span> references</h2>
|
|
202
|
+
<div id="outline-container-orga87872a" class="outline-2">
|
|
203
|
+
<h2 id="orga87872a"><span class="section-number-2">6.</span> reverse and plot</h2>
|
|
187
204
|
<div class="outline-text-2" id="text-6">
|
|
205
|
+
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
<colgroup>
|
|
209
|
+
<col class="org-left" />
|
|
210
|
+
</colgroup>
|
|
211
|
+
<tbody>
|
|
212
|
+
<tr>
|
|
213
|
+
<td class="org-left"><img src="./voca_buil/voca_buil.002.png" alt="voca_buil.002.png" /></td>
|
|
214
|
+
</tr>
|
|
215
|
+
|
|
216
|
+
<tr>
|
|
217
|
+
<td class="org-left">Fig.3 日本語から英単語(j2e)のチェックとplot.</td>
|
|
218
|
+
</tr>
|
|
219
|
+
</tbody>
|
|
220
|
+
</table>
|
|
221
|
+
|
|
222
|
+
<p>
|
|
223
|
+
発展形です.reverseを指定すると日本語から英単語(j2e)ができます.
|
|
224
|
+
また
|
|
225
|
+
</p>
|
|
226
|
+
<pre class="example">
|
|
227
|
+
> hc plot
|
|
228
|
+
> hc plot -s
|
|
229
|
+
</pre>
|
|
230
|
+
|
|
231
|
+
<p>
|
|
232
|
+
すると練習時間の履歴や点数(score)が表示されます.
|
|
233
|
+
</p>
|
|
234
|
+
</div>
|
|
235
|
+
</div>
|
|
236
|
+
<div id="outline-container-org22e1ff0" class="outline-2">
|
|
237
|
+
<h2 id="org22e1ff0"><span class="section-number-2">7.</span> references</h2>
|
|
238
|
+
<div class="outline-text-2" id="text-7">
|
|
188
239
|
<p>
|
|
189
240
|
「由来とつながりがわかる英単語語源マップ」, 臼井俊雄著, (ベレ出版, 2017).
|
|
190
241
|
</p>
|
|
@@ -193,7 +244,7 @@ Answers-Quizはdir_tree.yamlから取り出しています.
|
|
|
193
244
|
</div>
|
|
194
245
|
<div id="postamble" class="status">
|
|
195
246
|
<p class="author">Author: Shigeto R. Nishitani</p>
|
|
196
|
-
<p class="date">Created: 2026-01-
|
|
247
|
+
<p class="date">Created: 2026-01-15 Thu 17:20</p>
|
|
197
248
|
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
|
|
198
249
|
</div>
|
|
199
250
|
</body>
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
> cd _stack_init_check_dirs
|
|
21
21
|
#+end_src
|
|
22
22
|
* usage
|
|
23
|
-
| [[file:./voca_buil/voca_buil.
|
|
23
|
+
| [[file:./voca_buil/voca_buil.003.png]]
|
|
24
24
|
| Fig.1 hc checkの動作の概略図.
|
|
25
25
|
** hc check
|
|
26
26
|
mk_semi_latticeをgemでinstallすると,
|
|
@@ -56,7 +56,7 @@ Usage: hc check [options]
|
|
|
56
56
|
--install Install sample abbrev data
|
|
57
57
|
#+end_src
|
|
58
58
|
* dir_tree.yaml編集
|
|
59
|
-
| [[file
|
|
59
|
+
| [[file:./voca_buil/voca_buil.004.png]]
|
|
60
60
|
| Fig.2 dir_tree.yamlのフォーマット.
|
|
61
61
|
Answers-Quizはdir_tree.yamlから取り出しています.
|
|
62
62
|
自分の進捗に合わせて編集していってください.
|
|
@@ -67,6 +67,17 @@ Answers-Quizはdir_tree.yamlから取り出しています.
|
|
|
67
67
|
でバックアップをとって変えていくのがコツです.
|
|
68
68
|
[[../../mk_stack/docs/readme.org][stackの解説]]を参照ください.
|
|
69
69
|
|
|
70
|
+
* reverse and plot
|
|
71
|
+
| [[file:./voca_buil/voca_buil.002.png]]
|
|
72
|
+
| Fig.3 日本語から英単語(j2e)のチェックとplot.
|
|
73
|
+
|
|
74
|
+
発展形です.reverseを指定すると日本語から英単語(j2e)ができます.
|
|
75
|
+
また
|
|
76
|
+
: > hc plot
|
|
77
|
+
: > hc plot -s
|
|
78
|
+
すると練習時間の履歴や点数(score)が表示されます.
|
|
79
|
+
|
|
80
|
+
|
|
70
81
|
|
|
71
82
|
* references
|
|
72
83
|
「由来とつながりがわかる英単語語源マップ」, 臼井俊雄著, (ベレ出版, 2017).
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -30,6 +30,10 @@ module VocaBuil
|
|
|
30
30
|
opt.on('--install', 'Install sample check data') do
|
|
31
31
|
options[:install] = true
|
|
32
32
|
end
|
|
33
|
+
# 追加: reverseモード
|
|
34
|
+
opt.on('-r', '--reverse', 'Reverse quiz and answers') do
|
|
35
|
+
options[:reverse] = true
|
|
36
|
+
end
|
|
33
37
|
opt.parse!(args)
|
|
34
38
|
p options
|
|
35
39
|
options
|
|
@@ -39,10 +43,13 @@ module VocaBuil
|
|
|
39
43
|
class BaseCheck
|
|
40
44
|
CHECK_LOG_FILE = './check_log.yaml'
|
|
41
45
|
WORD_LOG_FILE = './word_log.yaml'
|
|
46
|
+
WORD_LOG_FILE_J2E = './word_log_j2e.yaml' # 追加
|
|
47
|
+
|
|
42
48
|
def initialize(options)
|
|
43
49
|
@options = options.dup
|
|
44
50
|
@check_log_file = self.class::CHECK_LOG_FILE
|
|
45
|
-
|
|
51
|
+
# reverseオプションでファイル名を切り替え
|
|
52
|
+
@word_log_file = options[:reverse] ? self.class::WORD_LOG_FILE_J2E : self.class::WORD_LOG_FILE
|
|
46
53
|
end
|
|
47
54
|
def shuffle_words(words, w_num)
|
|
48
55
|
words.shuffle.first(w_num)
|
|
@@ -163,8 +170,9 @@ module VocaBuil
|
|
|
163
170
|
|
|
164
171
|
class WordsSelector
|
|
165
172
|
def initialize(word_log_file, options)
|
|
166
|
-
@word_log_file = word_log_file
|
|
167
173
|
@options = options
|
|
174
|
+
# reverseオプションでファイル名を切り替え
|
|
175
|
+
@word_log_file = options[:reverse] ? './word_log_j2e.yaml' : word_log_file
|
|
168
176
|
end
|
|
169
177
|
|
|
170
178
|
# w_num, a_numを受け取り、a_num+1個の単語を返す
|
|
@@ -189,40 +197,30 @@ module VocaBuil
|
|
|
189
197
|
private
|
|
190
198
|
|
|
191
199
|
def read_words(file)
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
lines = File.readlines(file)
|
|
195
|
-
parse_word_lines(lines)
|
|
196
|
-
else
|
|
200
|
+
files = Dir.glob(file)
|
|
201
|
+
if files.empty?
|
|
197
202
|
files = Dir.glob('./*/*_tree.yaml')
|
|
198
|
-
# p ['files', files]
|
|
199
203
|
if files.empty?
|
|
200
204
|
puts "No '*_tree.yaml' files found in subdirectories.".red
|
|
201
205
|
return []
|
|
202
206
|
end
|
|
203
|
-
words = []
|
|
204
|
-
files.each do |f|
|
|
205
|
-
lines = File.readlines(f)
|
|
206
|
-
words.concat(parse_word_lines(lines))
|
|
207
|
-
end
|
|
208
|
-
words
|
|
209
207
|
end
|
|
208
|
+
files.flat_map { |f| parse_word_file(f) }
|
|
210
209
|
end
|
|
211
210
|
|
|
212
|
-
def
|
|
213
|
-
|
|
214
|
-
lines[1..-1].
|
|
211
|
+
def parse_word_file(filepath)
|
|
212
|
+
lines = File.readlines(filepath)
|
|
213
|
+
lines[1..-1].each_with_object([]) do |line, words|
|
|
215
214
|
line = line.split('#', 2)[0]
|
|
216
215
|
next if line.strip == ''
|
|
217
216
|
line_strip = if line.strip[0] == ':'
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
217
|
+
line.strip[1..-2]
|
|
218
|
+
else
|
|
219
|
+
line.strip[0..-2]
|
|
220
|
+
end
|
|
222
221
|
tmp = line_strip.split("=")
|
|
223
|
-
words << tmp
|
|
222
|
+
words << (@options[:reverse] ? tmp.reverse : tmp)
|
|
224
223
|
end
|
|
225
|
-
words
|
|
226
224
|
end
|
|
227
225
|
|
|
228
226
|
def shuffle_words(words, w_num)
|
|
@@ -248,12 +246,14 @@ module VocaBuil
|
|
|
248
246
|
end
|
|
249
247
|
|
|
250
248
|
class IterativeCheck
|
|
249
|
+
SCORE_LOG_FILE = './score_log.yaml' # 追加
|
|
250
|
+
|
|
251
251
|
def initialize(options, iter = 2)
|
|
252
252
|
@options = options
|
|
253
253
|
@iter = iter
|
|
254
254
|
@score = 0
|
|
255
255
|
@wrong_answers = []
|
|
256
|
-
@dir_count = Hash.new(0)
|
|
256
|
+
@dir_count = Hash.new(0) # ディレクトリごとの間違い数カウント
|
|
257
257
|
end
|
|
258
258
|
|
|
259
259
|
def run
|
|
@@ -280,15 +280,41 @@ module VocaBuil
|
|
|
280
280
|
|
|
281
281
|
def print_score
|
|
282
282
|
puts "%2d/%2d" % [@score, (@iter * @options[:w_num])]
|
|
283
|
+
log_score # 追加
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
# 追加: スコアをscore_log.yamlに記録
|
|
287
|
+
def log_score
|
|
288
|
+
word_log_file = @options[:reverse] ? VocaBuil::BaseCheck::WORD_LOG_FILE_J2E : VocaBuil::BaseCheck::WORD_LOG_FILE
|
|
289
|
+
words_size = File.exist?(word_log_file) ? YAML.load_file(word_log_file).size : 0
|
|
290
|
+
|
|
291
|
+
log_file = self.class::SCORE_LOG_FILE
|
|
292
|
+
logs = File.exist?(log_file) ? YAML.load_file(log_file) : []
|
|
293
|
+
log_line = {
|
|
294
|
+
date: Time.now.strftime('%Y-%m-%d %H:%M:%S'),
|
|
295
|
+
comm: @options[:cmd_line] || "",
|
|
296
|
+
score: "#{@score}/#{@iter * @options[:w_num]}",
|
|
297
|
+
size: words_size # 追加
|
|
298
|
+
}
|
|
299
|
+
logs << log_line
|
|
300
|
+
File.write(log_file, YAML.dump(logs))
|
|
283
301
|
end
|
|
284
302
|
|
|
285
303
|
def print_wrong_answers
|
|
286
304
|
return if @wrong_answers.uniq.empty?
|
|
287
305
|
puts "Wrong answers:".red
|
|
306
|
+
# カレントディレクトリに *_tree.yaml が1つでもあればそれらを対象に
|
|
307
|
+
local_tree_files = Dir.glob("*_tree.yaml")
|
|
308
|
+
grep_target = if !local_tree_files.empty?
|
|
309
|
+
local_tree_files.join(' ')
|
|
310
|
+
else
|
|
311
|
+
'*/*_tree.yaml'
|
|
312
|
+
end
|
|
288
313
|
@wrong_answers.uniq.each do |w|
|
|
289
314
|
print "#{w}: ".red
|
|
290
|
-
result = `grep -E "
|
|
291
|
-
|
|
315
|
+
result = `grep -E "#{w}" #{grep_target}`
|
|
316
|
+
word = result.split(":")[1]
|
|
317
|
+
puts word ? word.strip : "(not found)"
|
|
292
318
|
count_dirs(result)
|
|
293
319
|
end
|
|
294
320
|
end
|
|
@@ -322,7 +348,7 @@ module VocaBuil
|
|
|
322
348
|
return
|
|
323
349
|
end
|
|
324
350
|
puts "Extracting #{@tgz_file} to current directory...".green
|
|
325
|
-
system("tar", "
|
|
351
|
+
system("tar", "xf", @tgz_file)
|
|
326
352
|
puts "Extraction complete.".green
|
|
327
353
|
end
|
|
328
354
|
end
|
data/readme.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
4
4
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="jp" xml:lang="jp">
|
|
5
5
|
<head>
|
|
6
|
-
<!-- 2026-01-
|
|
6
|
+
<!-- 2026-01-15 Thu 23:12 -->
|
|
7
7
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
9
9
|
<title>mk_semi_lattice, hc</title>
|
|
@@ -27,18 +27,17 @@
|
|
|
27
27
|
<h2>Table of Contents</h2>
|
|
28
28
|
<div id="text-table-of-contents" role="doc-toc">
|
|
29
29
|
<ul>
|
|
30
|
-
<li><a href="#
|
|
31
|
-
<li><a href="#
|
|
32
|
-
<li><a href="#
|
|
33
|
-
<li><a href="#
|
|
34
|
-
<li><a href="#
|
|
35
|
-
<li><a href="#
|
|
36
|
-
<li><a href="#org868d9a9">7. Code of Conduct</a></li>
|
|
30
|
+
<li><a href="#org66b2453">1. Name</a></li>
|
|
31
|
+
<li><a href="#org7841981">2. Installation</a></li>
|
|
32
|
+
<li><a href="#orge22878e">3. Usage</a></li>
|
|
33
|
+
<li><a href="#orga1dfc28">4. Contributing</a></li>
|
|
34
|
+
<li><a href="#org317e2bc">5. License</a></li>
|
|
35
|
+
<li><a href="#org679c84b">6. Code of Conduct</a></li>
|
|
37
36
|
</ul>
|
|
38
37
|
</div>
|
|
39
38
|
</div>
|
|
40
|
-
<div id="outline-container-
|
|
41
|
-
<h2 id="
|
|
39
|
+
<div id="outline-container-org66b2453" class="outline-2">
|
|
40
|
+
<h2 id="org66b2453"><span class="section-number-2">1.</span> Name</h2>
|
|
42
41
|
<div class="outline-text-2" id="text-1">
|
|
43
42
|
<p>
|
|
44
43
|
セミラティス(semi lattice)構造を表示するmk_slコマンドと,
|
|
@@ -46,11 +45,11 @@
|
|
|
46
45
|
</p>
|
|
47
46
|
</div>
|
|
48
47
|
</div>
|
|
49
|
-
<div id="outline-container-
|
|
50
|
-
<h2 id="
|
|
48
|
+
<div id="outline-container-org7841981" class="outline-2">
|
|
49
|
+
<h2 id="org7841981"><span class="section-number-2">2.</span> Installation</h2>
|
|
51
50
|
<div class="outline-text-2" id="text-2">
|
|
52
51
|
<p>
|
|
53
|
-
'mk_semi_lattice' depends on 'ruby2d'.
|
|
52
|
+
'mk_semi_lattice' or 'hc view' depends on 'ruby2d'.
|
|
54
53
|
See the installation manual on <a href="https://www.ruby2d.com/learn/linux/#install-packages">https://www.ruby2d.com</a>.
|
|
55
54
|
</p>
|
|
56
55
|
|
|
@@ -74,8 +73,8 @@ executing:
|
|
|
74
73
|
</div>
|
|
75
74
|
</div>
|
|
76
75
|
</div>
|
|
77
|
-
<div id="outline-container-
|
|
78
|
-
<h2 id="
|
|
76
|
+
<div id="outline-container-orge22878e" class="outline-2">
|
|
77
|
+
<h2 id="orge22878e"><span class="section-number-2">3.</span> Usage</h2>
|
|
79
78
|
<div class="outline-text-2" id="text-3">
|
|
80
79
|
<div class="org-src-container">
|
|
81
80
|
<pre class="src src-bash">> hc -h
|
|
@@ -90,24 +89,17 @@ Commands:
|
|
|
90
89
|
<li><a href="./lib/mk_stack/docs/readme.html">hc stack</a> # make stacks</li>
|
|
91
90
|
<li><a href="./lib/mk_semi_lattice/docs/readme.html">hc view</a> # View Semi Lattice Graph</li>
|
|
92
91
|
</ul>
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
<ul class="org-ul">
|
|
95
|
+
<li><a href="./lib/docs/short_intro.html">short introduction for vocabulary builder</a></li>
|
|
96
|
+
</ul>
|
|
93
97
|
</div>
|
|
94
98
|
</div>
|
|
95
|
-
<div id="outline-container-
|
|
96
|
-
<h2 id="
|
|
99
|
+
<div id="outline-container-orga1dfc28" class="outline-2">
|
|
100
|
+
<h2 id="orga1dfc28"><span class="section-number-2">4.</span> Contributing</h2>
|
|
97
101
|
<div class="outline-text-2" id="text-4">
|
|
98
102
|
<p>
|
|
99
|
-
To install this gem onto your local machine, run
|
|
100
|
-
<code>bundle exec rake install</code>. To release a new version, update the version
|
|
101
|
-
number in <code>version.rb</code>, and then run <code>bundle exec rake release</code>, which
|
|
102
|
-
will create a git tag for the version, push git commits and the created
|
|
103
|
-
tag, and push the <code>.gem</code> file to <a href="https://rubygems.org">rubygems.org</a>.
|
|
104
|
-
</p>
|
|
105
|
-
</div>
|
|
106
|
-
</div>
|
|
107
|
-
<div id="outline-container-org189070f" class="outline-2">
|
|
108
|
-
<h2 id="org189070f"><span class="section-number-2">5.</span> Contributing</h2>
|
|
109
|
-
<div class="outline-text-2" id="text-5">
|
|
110
|
-
<p>
|
|
111
103
|
Bug reports and pull requests are welcome on GitHub at
|
|
112
104
|
<a href="https://github.com/daddygongon/mk_semi_lattice">https://github.com/daddygongon/mk_semi_lattice</a>. This project is intended
|
|
113
105
|
to be a safe, welcoming space for collaboration, and contributors are
|
|
@@ -115,17 +107,17 @@ expected to adhere to the <a href="https://github.com/%5BUSERNAME%5D/mk_semi_lat
|
|
|
115
107
|
</p>
|
|
116
108
|
</div>
|
|
117
109
|
</div>
|
|
118
|
-
<div id="outline-container-
|
|
119
|
-
<h2 id="
|
|
120
|
-
<div class="outline-text-2" id="text-
|
|
110
|
+
<div id="outline-container-org317e2bc" class="outline-2">
|
|
111
|
+
<h2 id="org317e2bc"><span class="section-number-2">5.</span> License</h2>
|
|
112
|
+
<div class="outline-text-2" id="text-5">
|
|
121
113
|
<p>
|
|
122
114
|
The gem is available as open source under the terms of the <a href="https://opensource.org/licenses/MIT">MIT License</a>.
|
|
123
115
|
</p>
|
|
124
116
|
</div>
|
|
125
117
|
</div>
|
|
126
|
-
<div id="outline-container-
|
|
127
|
-
<h2 id="
|
|
128
|
-
<div class="outline-text-2" id="text-
|
|
118
|
+
<div id="outline-container-org679c84b" class="outline-2">
|
|
119
|
+
<h2 id="org679c84b"><span class="section-number-2">6.</span> Code of Conduct</h2>
|
|
120
|
+
<div class="outline-text-2" id="text-6">
|
|
129
121
|
<p>
|
|
130
122
|
Everyone interacting in the MkSemiLattice project's codebases, issue
|
|
131
123
|
trackers, chat rooms and mailing lists is expected to follow the
|
|
@@ -136,7 +128,7 @@ trackers, chat rooms and mailing lists is expected to follow the
|
|
|
136
128
|
</div>
|
|
137
129
|
<div id="postamble" class="status">
|
|
138
130
|
<p class="author">Author: Shigeto R. Nishitani</p>
|
|
139
|
-
<p class="date">Created: 2026-01-
|
|
131
|
+
<p class="date">Created: 2026-01-15 Thu 23:12</p>
|
|
140
132
|
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
|
|
141
133
|
</div>
|
|
142
134
|
</body>
|
data/{README.org → readme.org}
RENAMED
|
@@ -40,12 +40,8 @@ Commands:
|
|
|
40
40
|
- [[./lib/mk_stack/docs/readme.org][hc stack]] # make stacks
|
|
41
41
|
- [[./lib/mk_semi_lattice/docs/readme.org][hc view]] # View Semi Lattice Graph
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
=bundle exec rake install=. To release a new version, update the version
|
|
46
|
-
number in =version.rb=, and then run =bundle exec rake release=, which
|
|
47
|
-
will create a git tag for the version, push git commits and the created
|
|
48
|
-
tag, and push the =.gem= file to [[https://rubygems.org][rubygems.org]].
|
|
43
|
+
|
|
44
|
+
- [[./lib/docs/short_intro.org][short introduction for vocabulary builder]]
|
|
49
45
|
|
|
50
46
|
* Contributing
|
|
51
47
|
Bug reports and pull requests are welcome on GitHub at
|