ruby-japanize 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|