ruby-japanize 0.1.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 +7 -0
- data/.gitignore +16 -0
- data/Gemfile +13 -0
- data/LICENSE.txt +21 -0
- data/README.md +1459 -0
- data/Rakefile +88 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/japanize/base.rb +652 -0
- data/lib/japanize/container.rb +213 -0
- data/lib/japanize/core.rb +194 -0
- data/lib/japanize/enum.rb +127 -0
- data/lib/japanize/errors.rb +79 -0
- data/lib/japanize/globals.rb +109 -0
- data/lib/japanize/io.rb +388 -0
- data/lib/japanize/names.rb +213 -0
- data/lib/japanize/num.rb +319 -0
- data/lib/japanize/process.rb +318 -0
- data/lib/japanize/string.rb +257 -0
- data/lib/japanize/syntax.rb +805 -0
- data/lib/japanize/sys.rb +174 -0
- data/lib/japanize/test_unit.rb +99 -0
- data/lib/japanize/thread.rb +143 -0
- data/lib/japanize/time.rb +82 -0
- data/lib/japanize/version.rb +12 -0
- data/lib/japanize.rb +24 -0
- data/ruby-japanize.gemspec +41 -0
- data/sample/README.md +33 -0
- data/sample/dir.rb +15 -0
- data/sample/eval.rb +48 -0
- data/sample/export.rb +44 -0
- data/sample/fact.rb +17 -0
- data/sample/fib.rb +13 -0
- data/sample/freq.rb +17 -0
- data/sample/fullpath.rb +29 -0
- data/sample/less.rb +19 -0
- data/sample/list.rb +86 -0
- data/sample/list2.rb +22 -0
- data/sample/list3.rb +23 -0
- data/sample/mine.rb +204 -0
- data/sample/mkproto.rb +33 -0
- data/sample/mpart.rb +48 -0
- data/sample/occur.rb +17 -0
- data/sample/occur2.rb +17 -0
- data/sample/philos.rb +57 -0
- data/sample/pi.rb +20 -0
- data/sample/rcs.dat +17 -0
- data/sample/rcs.rb +45 -0
- data/sample/sieve.rb +17 -0
- data/sample/time.rb +14 -0
- data/sample/trojan.rb +18 -0
- data/sample/uumerge.rb +47 -0
- metadata +164 -0
@@ -0,0 +1,652 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'japanize/core'
|
4
|
+
|
5
|
+
要求 'japanize/names'
|
6
|
+
|
7
|
+
組(部) {
|
8
|
+
特異組{
|
9
|
+
別名 :定数の一覧, :constants
|
10
|
+
別名 :入れ子, :nesting
|
11
|
+
別名 :新規, :new
|
12
|
+
別名 :使用中の部の一覧, :used_modules
|
13
|
+
}
|
14
|
+
|
15
|
+
# 別名 :別名, :alias_method # japanize/coreで定義済み
|
16
|
+
別名 :原型の一覧, :ancestors
|
17
|
+
別名 :属性, :attr
|
18
|
+
別名 :読み書き属性, :attr_accessor
|
19
|
+
別名 :読み取り属性, :attr_reader
|
20
|
+
別名 :書き込み属性, :attr_writer
|
21
|
+
別名 :自動配置, :autoload
|
22
|
+
別名 :自動配置か?, :autoload?
|
23
|
+
# 別名 :部で評価, :module_eval # japanize/coreで定義済み
|
24
|
+
# 別名 :組で評価, :class_eval # japanize/coreで定義済み
|
25
|
+
別名 :組の変数は定義済みか?, :class_variable_defined?
|
26
|
+
別名 :組の変数の一覧, :class_variables
|
27
|
+
# 別名 :定数は定義済みか?, :const_defined? # japanize/coreで定義済み
|
28
|
+
# 別名 :定数を取得, :const_get # japanize/coreで定義済み
|
29
|
+
別名 :不明な定数, :const_missing
|
30
|
+
定義(:const_missing) {|名前| 不明な定数(名前) }
|
31
|
+
# 別名 :定数を設定, :const_set # japanize/coreで定義済み
|
32
|
+
別名 :定数の一覧, :constants
|
33
|
+
# 別名 :定義, :define_method # japanize/coreで定義済み
|
34
|
+
別名 :凍結する, :freeze
|
35
|
+
別名 :付加, :include
|
36
|
+
別名 :付加済みか?, :include?
|
37
|
+
別名 :含まれる部の一覧, :included_modules
|
38
|
+
別名 :名前, :name
|
39
|
+
別名 :生成物が持つ操作を取得, :instance_method
|
40
|
+
別名 :生成物が持つ操作の一覧, :instance_methods
|
41
|
+
別名 :操作は定義済みか?, :method_defined?
|
42
|
+
別名 :付与, :prepend
|
43
|
+
別名 :組が持つ操作を秘密にする, :private_class_method
|
44
|
+
別名 :生成物が持つ秘密の操作の一覧, :private_instance_methods
|
45
|
+
別名 :秘密の操作は定義済みか?, :private_method_defined?
|
46
|
+
別名 :生成物が持つ保護された操作の一覧, :protected_instance_methods
|
47
|
+
別名 :保護された操作は定義済みか?, :protected_method_defined?
|
48
|
+
別名 :組が持つ操作を公開する, :public_class_method
|
49
|
+
別名 :生成物が持つ公開された操作を取得, :public_instance_method
|
50
|
+
別名 :生成物が持つ公開された操作の一覧, :public_instance_methods
|
51
|
+
別名 :公開された操作は定義済みか?, :public_method_defined?
|
52
|
+
別名 :組の変数を除去する, :remove_class_variable
|
53
|
+
別名 :操作を除去する, :remove_method
|
54
|
+
別名 :操作を未定義にする, :undef_method
|
55
|
+
|
56
|
+
別名 :機能を付加する, :append_features
|
57
|
+
別名 :部で実行, :module_exec
|
58
|
+
別名 :組で実行, :class_exec
|
59
|
+
別名 :組の変数を取得, :class_variable_get
|
60
|
+
別名 :組の変数を設定, :class_variable_set
|
61
|
+
別名 :定数を非推奨にする, :deprecate_constant
|
62
|
+
別名 :物を拡張する, :extend_object
|
63
|
+
別名 :拡張した時, :extended
|
64
|
+
定義(:extended) {|物| 拡張した時(物) }
|
65
|
+
別名 :付加された時, :included
|
66
|
+
定義(:included) {|組または部| 付加された時(組または部) }
|
67
|
+
別名 :操作が追加された時, :method_added
|
68
|
+
定義(:method_added) {|名前| 操作が追加された時(名前) }
|
69
|
+
別名 :操作が除去された時, :method_removed
|
70
|
+
定義(:method_removed) {|名前| 操作が除去された時(名前) }
|
71
|
+
別名 :操作が未定義にされた時, :method_undefined
|
72
|
+
定義(:method_undefined) {|名前| 操作が未定義にされた時(名前) }
|
73
|
+
# 別名 :部の関数, :module_function # japanize/coreで定義済み
|
74
|
+
別名 :機能を付与する, :prepend_features
|
75
|
+
別名 :付与された時, :prepended
|
76
|
+
定義(:prepended) {|組または部| 付与された時(組または部) }
|
77
|
+
# 別名 :秘密, :private # japanize/coreで定義済み
|
78
|
+
別名 :秘密の定数, :private_constant
|
79
|
+
別名 :保護, :protected
|
80
|
+
別名 :公開, :public
|
81
|
+
別名 :公開された定数, :public_constant
|
82
|
+
別名 :限定拡張, :refine
|
83
|
+
別名 :定数を除去する, :remove_const
|
84
|
+
別名 :特異組か?, :singleton_class?
|
85
|
+
別名 :限定拡張を使用, :using
|
86
|
+
|
87
|
+
秘密 :機能を付加する,
|
88
|
+
:部で実行,
|
89
|
+
:組で実行,
|
90
|
+
:組の変数を取得,
|
91
|
+
:組の変数を設定,
|
92
|
+
:定数を非推奨にする,
|
93
|
+
:物を拡張する,
|
94
|
+
:拡張した時, :extended,
|
95
|
+
:付加された時, :included,
|
96
|
+
:操作が追加された時, :method_added,
|
97
|
+
:操作が除去された時, :method_removed,
|
98
|
+
:操作が未定義にされた時, :method_undefined,
|
99
|
+
:機能を付与する,
|
100
|
+
:付与された時, :prepended,
|
101
|
+
:秘密の定数,
|
102
|
+
:保護,
|
103
|
+
:公開,
|
104
|
+
:公開された定数,
|
105
|
+
:限定拡張,
|
106
|
+
:定数を除去する,
|
107
|
+
:特異組か?,
|
108
|
+
:限定拡張を使用
|
109
|
+
|
110
|
+
定義(:日本語の定数を移譲) {|移譲先の部, 名前, *名前の一覧, 上書き: 偽値|
|
111
|
+
名前の一覧 = [ 名前 ] + 名前の一覧
|
112
|
+
|
113
|
+
日本語の定数を移譲できる部 = 部.新規
|
114
|
+
名前の一覧.each{|定数名| # スコープを作るためブロックにする
|
115
|
+
移譲先の操作 = 移譲先の部.公開された操作を取得(定数名)
|
116
|
+
unless (移譲先の操作.parameters.empty?) then
|
117
|
+
例外を発生 名前解決に失敗, "定数ではありません: #{定数名}"
|
118
|
+
end
|
119
|
+
日本語の定数を移譲できる部.定義(定数名) {
|
120
|
+
移譲先の部.公開された範囲で送信(定数名)
|
121
|
+
}
|
122
|
+
}
|
123
|
+
|
124
|
+
特異組{
|
125
|
+
if (上書き) then
|
126
|
+
付与 日本語の定数を移譲できる部
|
127
|
+
else
|
128
|
+
付加 日本語の定数を移譲できる部
|
129
|
+
end
|
130
|
+
}
|
131
|
+
|
132
|
+
自分
|
133
|
+
}
|
134
|
+
|
135
|
+
定義(:日本語の定数を付加できること) {|名前, *名前の一覧|
|
136
|
+
名前の一覧 = [ 名前 ] + 名前の一覧
|
137
|
+
|
138
|
+
日本語の定数を付加できる部 = 部.新規
|
139
|
+
部(日本語の定数を付加できる部) {
|
140
|
+
定義(:付加された時) {|組または部|
|
141
|
+
super(組または部)
|
142
|
+
組または部.日本語の定数を移譲(自分, *名前の一覧, 上書き: 偽値)
|
143
|
+
}
|
144
|
+
|
145
|
+
定義(:付与された時) {|組または部|
|
146
|
+
super(組または部)
|
147
|
+
組または部.日本語の定数を移譲(自分, *名前の一覧, 上書き: 真値)
|
148
|
+
}
|
149
|
+
}
|
150
|
+
|
151
|
+
拡張 日本語の定数を付加できる部
|
152
|
+
}
|
153
|
+
}
|
154
|
+
|
155
|
+
組(組) {
|
156
|
+
操作を未定義にする :部の関数
|
157
|
+
操作を未定義にする :物を拡張する
|
158
|
+
操作を未定義にする :機能を付加する
|
159
|
+
操作を未定義にする :機能を付与する
|
160
|
+
操作を未定義にする :限定拡張
|
161
|
+
操作を未定義にする :日本語の定数を付加できること
|
162
|
+
|
163
|
+
特異組{
|
164
|
+
別名 :新規, :new
|
165
|
+
}
|
166
|
+
|
167
|
+
別名 :生成, :allocate
|
168
|
+
定義(:新規) {|*引数, &塊| new(*引数, &塊) } # 個別の組でnewを再定義するかもしれないので別名にしない
|
169
|
+
別名 :原型, :superclass
|
170
|
+
|
171
|
+
別名 :継承された時, :inherited
|
172
|
+
定義(:inherited) {|継承した組| 継承された時(継承した組) }
|
173
|
+
|
174
|
+
秘密 :継承された時, :inherited
|
175
|
+
}
|
176
|
+
|
177
|
+
組(物の土台) {
|
178
|
+
別名 :__識別番号__, :__id__
|
179
|
+
別名 :__送信__, :__send__
|
180
|
+
定義(:同一か?) {|他の物| equal?(他の物) } # equal?を継承先で再定義するかもしれないので別名にしない
|
181
|
+
別名 :生成物で評価, :instance_eval
|
182
|
+
別名 :生成物で実行, :instance_exec
|
183
|
+
|
184
|
+
別名 :不明な操作, :method_missing
|
185
|
+
定義(:method_missing) {|名前, *引数, &塊| 不明な操作(名前, *引数, &塊) }
|
186
|
+
別名 :特異操作が追加された時, :singleton_method_added
|
187
|
+
定義(:singleton_method_added) {|名前| 特異操作が追加された時(名前) }
|
188
|
+
別名 :特異操作が除去された時, :singleton_method_removed
|
189
|
+
定義(:singleton_method_removed) {|名前| 特異操作が除去された時(名前) }
|
190
|
+
別名 :特異操作が未定義にされた時, :singleton_method_undefined
|
191
|
+
定義(:singleton_method_undefined) {|名前| 特異操作が未定義にされた時(名前) }
|
192
|
+
|
193
|
+
秘密 :不明な操作, :method_missing,
|
194
|
+
:特異操作が追加された時, :singleton_method_added,
|
195
|
+
:特異操作が除去された時, :singleton_method_removed,
|
196
|
+
:特異操作が未定義にされた時, :singleton_method_undefined
|
197
|
+
}
|
198
|
+
|
199
|
+
組(物) {
|
200
|
+
別名 :送信, :send
|
201
|
+
別名 :生成元, :class
|
202
|
+
定義(:複写) {|*引数, &塊| clone(*引数, &塊) } # cloneを継承先で再定義するかもしれないので別名にしない
|
203
|
+
定義(:複製) {|*引数, &塊| dup(*引数, &塊) } # dupを継承先で再定義するかもしれないので別名にしない
|
204
|
+
別名 :特異操作の定義, :define_singleton_method
|
205
|
+
別名 :表示する, :display
|
206
|
+
別名 :列挙に変換, :to_enum
|
207
|
+
別名 :列挙する, :enum_for
|
208
|
+
定義(:等しいか?) {|他の物| eql?(他の物) } # eql?を継承先で再定義するかもしれないので別名にしない
|
209
|
+
別名 :拡張, :extend
|
210
|
+
別名 :凍結する, :freeze
|
211
|
+
別名 :凍結済みか?, :frozen?
|
212
|
+
定義(:ハッシュ値) { hash } # hashを継承先で再定義するかもしれないので別名にしない
|
213
|
+
定義(:検査) {|*引数, &塊| inspect(*引数, &塊) } # inspectを継承先で再定義するかもしれないので別名にしない
|
214
|
+
別名 :生成物か?, :instance_of?
|
215
|
+
別名 :生成物の変数は定義済みか?, :instance_variable_defined?
|
216
|
+
別名 :生成物の変数を取得, :instance_variable_get
|
217
|
+
別名 :生成物の変数を設定, :instance_variable_set
|
218
|
+
別名 :生成物の変数の一覧, :instance_variables
|
219
|
+
別名 :一種か?, :is_a?
|
220
|
+
別名 :自分自身, :itself
|
221
|
+
別名 :操作を取得, :method
|
222
|
+
別名 :操作の一覧, :methods
|
223
|
+
別名 :無値か?, :nil?
|
224
|
+
別名 :物の識別番号, :object_id
|
225
|
+
別名 :秘密の操作の一覧, :private_methods
|
226
|
+
別名 :保護された操作の一覧, :protected_methods
|
227
|
+
別名 :公開された操作を取得, :public_method
|
228
|
+
別名 :公開された操作の一覧, :public_methods
|
229
|
+
別名 :公開された範囲で送信, :public_send
|
230
|
+
別名 :生成物の変数を除去する, :remove_instance_variable
|
231
|
+
別名 :応答するか?, :respond_to?
|
232
|
+
# 別名 :特異組, :singleton_class # japanize/coreで定義済み
|
233
|
+
別名 :特異操作を取得, :singleton_method
|
234
|
+
別名 :特異操作の一覧, :singleton_methods
|
235
|
+
別名 :汚染させる, :taint
|
236
|
+
別名 :汚染されているか?, :tainted?
|
237
|
+
別名 :蛇口, :tap
|
238
|
+
別名 :それから, :then
|
239
|
+
別名 :自分を委ねる, :yield_self
|
240
|
+
定義(:文字列に変換) {|*引数, &塊| to_s(*引数, &塊) } # to_sを継承先で再定義するかもしれないので別名にしない
|
241
|
+
別名 :汚染を除去する, :untaint
|
242
|
+
|
243
|
+
別名 :初期化, :initialize
|
244
|
+
別名 :不明な応答か?, :respond_to_missing?
|
245
|
+
|
246
|
+
秘密 :初期化,
|
247
|
+
:不明な応答か?
|
248
|
+
}
|
249
|
+
|
250
|
+
部(日本語化) {
|
251
|
+
# initializeを直接上書きすると警告が出るので、間接的に上書きする。
|
252
|
+
部(:物の初期化を日本語化する) {
|
253
|
+
定義(:initialize) {|*引数, &塊| 初期化(*引数, &塊) }
|
254
|
+
秘密 :initialize
|
255
|
+
}
|
256
|
+
|
257
|
+
# respond_to_missing?を直接上書きすると警告が出るので、間接的に上書きする。
|
258
|
+
部(:物の不明な応答を日本語化する) {
|
259
|
+
定義(:respond_to_missing?) {|名前, *引数| 不明な応答か?(名前, *引数) }
|
260
|
+
秘密 :respond_to_missing?
|
261
|
+
}
|
262
|
+
|
263
|
+
組(物) {
|
264
|
+
付与 物の初期化を日本語化する
|
265
|
+
付与 物の不明な応答を日本語化する
|
266
|
+
}
|
267
|
+
}
|
268
|
+
|
269
|
+
# 組の定義と被る変換関数を定義する。
|
270
|
+
部(核) {
|
271
|
+
部(:変換関数の日本語化) {
|
272
|
+
定義(:配列) {|*引数|
|
273
|
+
if (引数.empty?) then
|
274
|
+
Array
|
275
|
+
else
|
276
|
+
Array(*引数)
|
277
|
+
end
|
278
|
+
}
|
279
|
+
|
280
|
+
定義(:複素数) {|*引数|
|
281
|
+
if (引数.empty?) then
|
282
|
+
Complex
|
283
|
+
else
|
284
|
+
Complex(*引数)
|
285
|
+
end
|
286
|
+
}
|
287
|
+
|
288
|
+
定義(:不動小数点) {|*引数|
|
289
|
+
if (引数.empty?) then
|
290
|
+
Float
|
291
|
+
else
|
292
|
+
Float(*引数)
|
293
|
+
end
|
294
|
+
}
|
295
|
+
|
296
|
+
定義(:連想配列) {|*引数|
|
297
|
+
if (引数.empty?) then
|
298
|
+
Hash
|
299
|
+
else
|
300
|
+
Hash(*引数)
|
301
|
+
end
|
302
|
+
}
|
303
|
+
|
304
|
+
定義(:整数) {|*引数|
|
305
|
+
if (引数.empty?) then
|
306
|
+
Integer
|
307
|
+
else
|
308
|
+
Integer(*引数)
|
309
|
+
end
|
310
|
+
}
|
311
|
+
|
312
|
+
定義(:有理数) {|*引数|
|
313
|
+
if (引数.empty?) then
|
314
|
+
Rational
|
315
|
+
else
|
316
|
+
Rational(*引数)
|
317
|
+
end
|
318
|
+
}
|
319
|
+
|
320
|
+
定義(:文字列) {|*引数|
|
321
|
+
if (引数.empty?) then
|
322
|
+
String
|
323
|
+
else
|
324
|
+
String(*引数)
|
325
|
+
end
|
326
|
+
}
|
327
|
+
}
|
328
|
+
拡張 変換関数の日本語化
|
329
|
+
}
|
330
|
+
|
331
|
+
部(日本語化) {
|
332
|
+
拡張 核::変換関数の日本語化
|
333
|
+
付与 核::変換関数の日本語化
|
334
|
+
}
|
335
|
+
付加 核::変換関数の日本語化
|
336
|
+
|
337
|
+
部(核) {
|
338
|
+
別名 :__呼び出し先__, :__callee__
|
339
|
+
別名 :__ディレクトリ__, :__dir__
|
340
|
+
別名 :__操作名__, :__method__
|
341
|
+
別名 :中断, :abort
|
342
|
+
別名 :終了時に実行, :at_exit
|
343
|
+
別名 :自動配置, :autoload
|
344
|
+
別名 :自動配置か?, :autoload?
|
345
|
+
別名 :束縛を取得, :binding
|
346
|
+
別名 :操作に手続きが与えられているか?, :block_given?
|
347
|
+
別名 :呼び出し元, :caller
|
348
|
+
別名 :呼び出し元の場所の一覧, :caller_locations
|
349
|
+
別名 :捕捉, :catch
|
350
|
+
別名 :評価, :eval
|
351
|
+
別名 :外部のプログラムを上書き実行する, :exec
|
352
|
+
別名 :終了, :exit
|
353
|
+
別名 :終了!, :exit!
|
354
|
+
別名 :例外を発生, :raise
|
355
|
+
別名 :プロセスを分岐, :fork
|
356
|
+
別名 :整形, :format
|
357
|
+
別名 :文字列に整形, :sprintf
|
358
|
+
別名 :行を取得, :gets
|
359
|
+
別名 :大域変数の一覧, :global_variables
|
360
|
+
別名 :手続き, :proc
|
361
|
+
別名 :λ, :lambda
|
362
|
+
別名 :配置, :load
|
363
|
+
別名 :局所変数の一覧, :local_variables
|
364
|
+
別名 :循環, :loop
|
365
|
+
別名 :ファイルを開く, :open
|
366
|
+
別名 :点検, :p
|
367
|
+
別名 :目視点検, :pp
|
368
|
+
別名 :印字, :print
|
369
|
+
別名 :整形して印字, :printf
|
370
|
+
別名 :文字を出力, :putc
|
371
|
+
別名 :行を出力, :puts
|
372
|
+
別名 :乱数, :rand
|
373
|
+
別名 :行を読む, :readline
|
374
|
+
別名 :全行を読む, :readlines
|
375
|
+
# 別名 :要求, :require # japanize/coreで定義済み
|
376
|
+
# 別名 :相対位置で要求, :require_relative # japanize/coreで定義済み
|
377
|
+
別名 :入出力を選択, :select
|
378
|
+
別名 :追跡関数を設定, :set_trace_func
|
379
|
+
別名 :休止, :sleep
|
380
|
+
別名 :外部のプログラムを実行する, :spawn
|
381
|
+
別名 :乱数の種を設定, :srand
|
382
|
+
別名 :システムコールを実行する, :syscall
|
383
|
+
別名 :外部のコマンドを実行する, :system
|
384
|
+
別名 :ファイルを検査, :test
|
385
|
+
別名 :脱出, :throw
|
386
|
+
別名 :大域変数を追跡, :trace_var
|
387
|
+
別名 :シグナルの捕捉, :trap
|
388
|
+
別名 :大域変数の追跡を解除, :untrace_var
|
389
|
+
別名 :警告, :warn
|
390
|
+
|
391
|
+
部の関数 :__呼び出し先__,
|
392
|
+
:__ディレクトリ__,
|
393
|
+
:__操作名__,
|
394
|
+
:中断,
|
395
|
+
:終了時に実行,
|
396
|
+
:自動配置,
|
397
|
+
:自動配置か?,
|
398
|
+
:束縛を取得,
|
399
|
+
:操作に手続きが与えられているか?,
|
400
|
+
:呼び出し元,
|
401
|
+
:呼び出し元の場所の一覧,
|
402
|
+
:捕捉,
|
403
|
+
:評価,
|
404
|
+
:外部のプログラムを上書き実行する,
|
405
|
+
:終了,
|
406
|
+
:終了!,
|
407
|
+
:例外を発生,
|
408
|
+
:プロセスを分岐,
|
409
|
+
:整形,
|
410
|
+
:文字列に整形,
|
411
|
+
:行を取得,
|
412
|
+
:大域変数の一覧,
|
413
|
+
:手続き,
|
414
|
+
:λ,
|
415
|
+
:配置,
|
416
|
+
:局所変数の一覧,
|
417
|
+
:循環,
|
418
|
+
:ファイルを開く,
|
419
|
+
:点検,
|
420
|
+
:目視点検,
|
421
|
+
:印字,
|
422
|
+
:整形して印字,
|
423
|
+
:文字を出力,
|
424
|
+
:行を出力,
|
425
|
+
:乱数,
|
426
|
+
:行を読む,
|
427
|
+
:全行を読む,
|
428
|
+
:入出力を選択,
|
429
|
+
:追跡関数を設定,
|
430
|
+
:休止,
|
431
|
+
:外部のプログラムを実行する,
|
432
|
+
:乱数の種を設定,
|
433
|
+
:システムコールを実行する,
|
434
|
+
:外部のコマンドを実行する,
|
435
|
+
:ファイルを検査,
|
436
|
+
:脱出,
|
437
|
+
:大域変数を追跡,
|
438
|
+
:シグナルの捕捉,
|
439
|
+
:大域変数の追跡を解除,
|
440
|
+
:警告
|
441
|
+
|
442
|
+
# コマンドラインオプションで -p または -n を指定した時のみ定義される。
|
443
|
+
[ [ :末尾を食べる, :chomp ],
|
444
|
+
[ :末尾を切り落す, :chop ],
|
445
|
+
[ :全置換, :gsub ],
|
446
|
+
[ :置換, :sub ],
|
447
|
+
].each do |日本語の操作, 元の操作|
|
448
|
+
if (操作は定義済みか? 元の操作) then
|
449
|
+
別名 日本語の操作, 元の操作
|
450
|
+
部の関数 日本語の操作
|
451
|
+
end
|
452
|
+
end
|
453
|
+
}
|
454
|
+
|
455
|
+
組(無値の組) {
|
456
|
+
別名 :無値か?, :nil?
|
457
|
+
別名 :有理化, :rationalize
|
458
|
+
別名 :配列に変換, :to_a
|
459
|
+
別名 :複素数に変換, :to_c
|
460
|
+
別名 :浮動小数点に変換, :to_f
|
461
|
+
別名 :連想配列に変換, :to_h
|
462
|
+
別名 :整数に変換, :to_i
|
463
|
+
別名 :有理数に変換, :to_r
|
464
|
+
# 別名 :文字列に変換, :to_s # 物で定義済み
|
465
|
+
}
|
466
|
+
|
467
|
+
組(例外) {
|
468
|
+
特異組{
|
469
|
+
別名 :例外を生成, :exception
|
470
|
+
}
|
471
|
+
|
472
|
+
別名 :呼び出し履歴, :backtrace
|
473
|
+
別名 :呼び出し履歴の場所の一覧, :backtrace_locations
|
474
|
+
別名 :起因, :cause
|
475
|
+
別名 :例外を生成, :exception
|
476
|
+
別名 :完全な伝文, :full_message
|
477
|
+
# 別名 :検査, :inspect # 物で定義済み
|
478
|
+
別名 :伝文, :message
|
479
|
+
# 別名 :文字列に変換, :to_s # 物で定義済み
|
480
|
+
別名 :呼び出し履歴を設定, :set_backtrace
|
481
|
+
}
|
482
|
+
|
483
|
+
部(日本語化) {
|
484
|
+
部(:不明な操作の呼び出し履歴を消す) {
|
485
|
+
定義(:不明な操作) {|名前, *引数, &塊|
|
486
|
+
begin
|
487
|
+
super(名前, *引数, &塊)
|
488
|
+
rescue 名前解決に失敗 => ある例外
|
489
|
+
# 物#不明な操作 と Object#method_missing の履歴を消して、元の場所で例外が発生したように見せる
|
490
|
+
ある例外.呼び出し履歴.shift(2)
|
491
|
+
ある例外.呼び出し履歴の場所の一覧.shift(2)
|
492
|
+
例外を発生 ある例外
|
493
|
+
end
|
494
|
+
}
|
495
|
+
}
|
496
|
+
|
497
|
+
組(物の土台) {
|
498
|
+
付与 不明な操作の呼び出し履歴を消す
|
499
|
+
}
|
500
|
+
|
501
|
+
部(:初期化を秘密にする) {
|
502
|
+
定義(:操作が追加された時) {|名前|
|
503
|
+
super(名前)
|
504
|
+
if (名前 == :初期化) then
|
505
|
+
秘密 :初期化
|
506
|
+
end
|
507
|
+
}
|
508
|
+
秘密 :操作が追加された時
|
509
|
+
}
|
510
|
+
|
511
|
+
組(部) {
|
512
|
+
付与 初期化を秘密にする
|
513
|
+
}
|
514
|
+
|
515
|
+
部(:操作の日本語化) {
|
516
|
+
日本語の定数 :変換操作の日本語化対応表, {
|
517
|
+
検査: :inspect,
|
518
|
+
配列に変換: :to_a,
|
519
|
+
連想配列に変換: :to_h,
|
520
|
+
文字列に変換: :to_s,
|
521
|
+
記号に変換: :to_sym,
|
522
|
+
整数に変換: :to_i,
|
523
|
+
浮動小数点に変換: :to_f,
|
524
|
+
有理数に変換: :to_r,
|
525
|
+
複素数に変換: :to_c
|
526
|
+
}
|
527
|
+
|
528
|
+
日本語の定数 :繰り返し操作の日本語化対応表, {
|
529
|
+
個別に: :each,
|
530
|
+
キー毎に: :each_key,
|
531
|
+
値毎に: :each_value,
|
532
|
+
対毎に: :each_pair
|
533
|
+
}
|
534
|
+
|
535
|
+
日本語の定数 :入れ物の操作の日本語化対応表, {
|
536
|
+
取得: :fetch,
|
537
|
+
格納: :store,
|
538
|
+
削除: :delete,
|
539
|
+
大きさ: :size,
|
540
|
+
長さ: :length,
|
541
|
+
空か?: :empty?,
|
542
|
+
キーの一覧: :keys,
|
543
|
+
キーか?: :key?,
|
544
|
+
キーを持つか?: :has_key?,
|
545
|
+
含むか?: :include?,
|
546
|
+
一員か?: :member?
|
547
|
+
}
|
548
|
+
|
549
|
+
特異操作の定義(:操作を日本語化できる部を作る) {|日本語化対応表|
|
550
|
+
部(部.新規) {
|
551
|
+
定義(:操作が追加された時) {|名前|
|
552
|
+
super(名前)
|
553
|
+
if (本来の名前 = 日本語化対応表[名前]) then
|
554
|
+
if (! (操作は定義済みか? 本来の名前) || (生成物が持つ操作を取得(名前) != 生成物が持つ操作を取得(本来の名前))) then
|
555
|
+
定義(本来の名前) {|*引数, &塊|
|
556
|
+
__送信__(名前, *引数, &塊)
|
557
|
+
}
|
558
|
+
end
|
559
|
+
end
|
560
|
+
}
|
561
|
+
秘密 :操作が追加された時
|
562
|
+
|
563
|
+
定義(:操作が除去された時) {|名前|
|
564
|
+
super(名前)
|
565
|
+
if (本来の名前 = 日本語化対応表[名前]) then
|
566
|
+
if (操作は定義済みか? 本来の名前) then
|
567
|
+
操作を除去する(本来の名前)
|
568
|
+
end
|
569
|
+
end
|
570
|
+
}
|
571
|
+
秘密 :操作が除去された時
|
572
|
+
|
573
|
+
定義(:操作が未定義にされた時) {|名前|
|
574
|
+
super(名前)
|
575
|
+
if (本来の名前 = 日本語化対応表[名前]) then
|
576
|
+
if (操作は定義済みか? 本来の名前) then
|
577
|
+
操作を未定義にする(本来の名前)
|
578
|
+
end
|
579
|
+
end
|
580
|
+
}
|
581
|
+
秘密 :操作が未定義にされた時
|
582
|
+
}
|
583
|
+
}
|
584
|
+
|
585
|
+
特異操作の定義(:物の操作を日本語化できる部を作る) {|日本語化対応表|
|
586
|
+
部(部.新規) {
|
587
|
+
定義(:特異操作が追加された時) {|名前|
|
588
|
+
super(名前)
|
589
|
+
if (本来の名前 = 日本語化対応表[名前]) then
|
590
|
+
特異組{
|
591
|
+
if (! (操作は定義済みか? 本来の名前) || (生成物が持つ操作を取得(名前) != 生成物が持つ操作を取得(本来の名前))) then
|
592
|
+
定義(本来の名前) {|*引数, &塊|
|
593
|
+
__送信__(名前, *引数, &塊)
|
594
|
+
}
|
595
|
+
end
|
596
|
+
}
|
597
|
+
end
|
598
|
+
}
|
599
|
+
秘密 :特異操作が追加された時
|
600
|
+
|
601
|
+
定義(:特異操作が除去された時) {|名前|
|
602
|
+
super(名前)
|
603
|
+
if (本来の名前 = 日本語化対応表[名前]) then
|
604
|
+
特異組{
|
605
|
+
if (操作は定義済みか? 本来の名前) then
|
606
|
+
操作を除去する(本来の名前)
|
607
|
+
end
|
608
|
+
}
|
609
|
+
end
|
610
|
+
}
|
611
|
+
秘密 :特異操作が除去された時
|
612
|
+
|
613
|
+
定義(:特異操作が未定義にされた時) {|名前|
|
614
|
+
super(名前)
|
615
|
+
if (本来の名前 = 日本語化対応表[名前]) then
|
616
|
+
特異組{
|
617
|
+
if (操作は定義済みか? 本来の名前) then
|
618
|
+
操作を未定義にする(本来の名前)
|
619
|
+
end
|
620
|
+
}
|
621
|
+
end
|
622
|
+
}
|
623
|
+
秘密 :特異操作が未定義にされた時
|
624
|
+
}
|
625
|
+
}
|
626
|
+
|
627
|
+
日本語の定数 :変換操作を日本語化できる, 操作を日本語化できる部を作る(変換操作の日本語化対応表)
|
628
|
+
日本語の定数 :繰り返し操作を日本語化できる, 操作を日本語化できる部を作る(繰り返し操作の日本語化対応表)
|
629
|
+
日本語の定数 :入れ物の操作を日本語化できる, 操作を日本語化できる部を作る(入れ物の操作の日本語化対応表)
|
630
|
+
|
631
|
+
日本語の定数 :物の変換操作を日本語化できる, 物の操作を日本語化できる部を作る(変換操作の日本語化対応表)
|
632
|
+
日本語の定数 :物の繰り返し操作を日本語化できる, 物の操作を日本語化できる部を作る(繰り返し操作の日本語化対応表)
|
633
|
+
日本語の定数 :物の入れ物の操作を日本語化できる, 物の操作を日本語化できる部を作る(入れ物の操作の日本語化対応表)
|
634
|
+
}
|
635
|
+
|
636
|
+
組(部) {
|
637
|
+
付与 操作の日本語化::変換操作を日本語化できる
|
638
|
+
付与 操作の日本語化::繰り返し操作を日本語化できる
|
639
|
+
付与 操作の日本語化::入れ物の操作を日本語化できる
|
640
|
+
}
|
641
|
+
|
642
|
+
組(物) {
|
643
|
+
付与 操作の日本語化::物の変換操作を日本語化できる
|
644
|
+
付与 操作の日本語化::物の繰り返し操作を日本語化できる
|
645
|
+
付与 操作の日本語化::物の入れ物の操作を日本語化できる
|
646
|
+
}
|
647
|
+
}
|
648
|
+
|
649
|
+
# Local Variables:
|
650
|
+
# mode: Ruby
|
651
|
+
# indent-tabs-mode: nil
|
652
|
+
# End:
|