ruby-japanize 0.1.0 → 0.2.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.
data/lib/japanize/base.rb CHANGED
@@ -22,7 +22,11 @@ require 'japanize/core'
22
22
  別名 :自動配置か?, :autoload?
23
23
  # 別名 :部で評価, :module_eval # japanize/coreで定義済み
24
24
  # 別名 :組で評価, :class_eval # japanize/coreで定義済み
25
+ 別名 :部で実行, :module_exec
26
+ 別名 :組で実行, :class_exec
25
27
  別名 :組の変数は定義済みか?, :class_variable_defined?
28
+ 別名 :組の変数を取得, :class_variable_get
29
+ 別名 :組の変数を設定, :class_variable_set
26
30
  別名 :組の変数の一覧, :class_variables
27
31
  # 別名 :定数は定義済みか?, :const_defined? # japanize/coreで定義済み
28
32
  # 別名 :定数を取得, :const_get # japanize/coreで定義済み
@@ -31,7 +35,7 @@ require 'japanize/core'
31
35
  # 別名 :定数を設定, :const_set # japanize/coreで定義済み
32
36
  別名 :定数の一覧, :constants
33
37
  # 別名 :定義, :define_method # japanize/coreで定義済み
34
- 別名 :凍結する, :freeze
38
+ 別名 :定数を非推奨にする, :deprecate_constant
35
39
  別名 :付加, :include
36
40
  別名 :付加済みか?, :include?
37
41
  別名 :含まれる部の一覧, :included_modules
@@ -41,24 +45,22 @@ require 'japanize/core'
41
45
  別名 :操作は定義済みか?, :method_defined?
42
46
  別名 :付与, :prepend
43
47
  別名 :組が持つ操作を秘密にする, :private_class_method
48
+ 別名 :秘密の定数, :private_constant
44
49
  別名 :生成物が持つ秘密の操作の一覧, :private_instance_methods
45
50
  別名 :秘密の操作は定義済みか?, :private_method_defined?
46
51
  別名 :生成物が持つ保護された操作の一覧, :protected_instance_methods
47
52
  別名 :保護された操作は定義済みか?, :protected_method_defined?
48
53
  別名 :組が持つ操作を公開する, :public_class_method
54
+ 別名 :公開された定数, :public_constant
49
55
  別名 :生成物が持つ公開された操作を取得, :public_instance_method
50
56
  別名 :生成物が持つ公開された操作の一覧, :public_instance_methods
51
57
  別名 :公開された操作は定義済みか?, :public_method_defined?
52
58
  別名 :組の変数を除去する, :remove_class_variable
53
59
  別名 :操作を除去する, :remove_method
60
+ 別名 :特異組か?, :singleton_class?
54
61
  別名 :操作を未定義にする, :undef_method
55
62
 
56
63
  別名 :機能を付加する, :append_features
57
- 別名 :部で実行, :module_exec
58
- 別名 :組で実行, :class_exec
59
- 別名 :組の変数を取得, :class_variable_get
60
- 別名 :組の変数を設定, :class_variable_set
61
- 別名 :定数を非推奨にする, :deprecate_constant
62
64
  別名 :物を拡張する, :extend_object
63
65
  別名 :拡張した時, :extended
64
66
  定義(:extended) {|物| 拡張した時(物) }
@@ -75,21 +77,13 @@ require 'japanize/core'
75
77
  別名 :付与された時, :prepended
76
78
  定義(:prepended) {|組または部| 付与された時(組または部) }
77
79
  # 別名 :秘密, :private # japanize/coreで定義済み
78
- 別名 :秘密の定数, :private_constant
79
80
  別名 :保護, :protected
80
81
  別名 :公開, :public
81
- 別名 :公開された定数, :public_constant
82
82
  別名 :限定拡張, :refine
83
83
  別名 :定数を除去する, :remove_const
84
- 別名 :特異組か?, :singleton_class?
85
84
  別名 :限定拡張を使用, :using
86
85
 
87
86
  秘密 :機能を付加する,
88
- :部で実行,
89
- :組で実行,
90
- :組の変数を取得,
91
- :組の変数を設定,
92
- :定数を非推奨にする,
93
87
  :物を拡張する,
94
88
  :拡張した時, :extended,
95
89
  :付加された時, :included,
@@ -98,13 +92,10 @@ require 'japanize/core'
98
92
  :操作が未定義にされた時, :method_undefined,
99
93
  :機能を付与する,
100
94
  :付与された時, :prepended,
101
- :秘密の定数,
102
95
  :保護,
103
96
  :公開,
104
- :公開された定数,
105
97
  :限定拡張,
106
98
  :定数を除去する,
107
- :特異組か?,
108
99
  :限定拡張を使用
109
100
 
110
101
  定義(:日本語の定数を移譲) {|移譲先の部, 名前, *名前の一覧, 上書き: 偽値|
@@ -165,7 +156,11 @@ require 'japanize/core'
165
156
  }
166
157
 
167
158
  別名 :生成, :allocate
168
- 定義(:新規) {|*引数, &塊| new(*引数, &塊) } # 個別の組でnewを再定義するかもしれないので別名にしない
159
+ if (_バージョンが2_7以上か?) then
160
+ 定義(:新規) {|*引数, **名前付き引数, &塊| new(*引数, **名前付き引数, &塊) } # 個別の組でnewを再定義するかもしれないので別名にしない
161
+ else
162
+ 定義(:新規) {|*引数, &塊| new(*引数, &塊) } # 個別の組でnewを再定義するかもしれないので別名にしない
163
+ end
169
164
  別名 :原型, :superclass
170
165
 
171
166
  別名 :継承された時, :inherited
@@ -181,8 +176,17 @@ require 'japanize/core'
181
176
  別名 :生成物で評価, :instance_eval
182
177
  別名 :生成物で実行, :instance_exec
183
178
 
179
+ 別名 :初期化, :initialize
184
180
  別名 :不明な操作, :method_missing
185
- 定義(:method_missing) {|名前, *引数, &塊| 不明な操作(名前, *引数, &塊) }
181
+ if (::JA::日本語化._バージョンが2_7以上か?) then
182
+ 定義(:method_missing) {|名前, *引数, **名前付き引数, &塊|
183
+ 不明な操作(名前, *引数, **名前付き引数, &塊)
184
+ }
185
+ else
186
+ 定義(:method_missing) {|名前, *引数, &塊|
187
+ 不明な操作(名前, *引数, &塊)
188
+ }
189
+ end
186
190
  別名 :特異操作が追加された時, :singleton_method_added
187
191
  定義(:singleton_method_added) {|名前| 特異操作が追加された時(名前) }
188
192
  別名 :特異操作が除去された時, :singleton_method_removed
@@ -190,27 +194,28 @@ require 'japanize/core'
190
194
  別名 :特異操作が未定義にされた時, :singleton_method_undefined
191
195
  定義(:singleton_method_undefined) {|名前| 特異操作が未定義にされた時(名前) }
192
196
 
193
- 秘密 :不明な操作, :method_missing,
197
+ 秘密 :初期化,
198
+ :不明な操作, :method_missing,
194
199
  :特異操作が追加された時, :singleton_method_added,
195
200
  :特異操作が除去された時, :singleton_method_removed,
196
201
  :特異操作が未定義にされた時, :singleton_method_undefined
197
202
  }
198
203
 
199
- 組(物) {
204
+ # 物の操作は実際は核で定義されている
205
+ 部(核) {
200
206
  別名 :送信, :send
201
207
  別名 :生成元, :class
202
- 定義(:複写) {|*引数, &塊| clone(*引数, &塊) } # cloneを継承先で再定義するかもしれないので別名にしない
203
- 定義(:複製) {|*引数, &塊| dup(*引数, &塊) } # dupを継承先で再定義するかもしれないので別名にしない
208
+ # 別名 :複写, :clone # cloneを継承先で再定義するかもしれないので別名にしない
209
+ # 別名 :複製, :dup # dupを継承先で再定義するかもしれないので別名にしない
204
210
  別名 :特異操作の定義, :define_singleton_method
205
211
  別名 :表示する, :display
206
212
  別名 :列挙に変換, :to_enum
207
213
  別名 :列挙する, :enum_for
208
- 定義(:等しいか?) {|他の物| eql?(他の物) } # eql?を継承先で再定義するかもしれないので別名にしない
214
+ # 別名 :等しいか?, :eql? # eql?を継承先で再定義するかもしれないので別名にしない
209
215
  別名 :拡張, :extend
210
- 別名 :凍結する, :freeze
211
216
  別名 :凍結済みか?, :frozen?
212
- 定義(:ハッシュ値) { hash } # hashを継承先で再定義するかもしれないので別名にしない
213
- 定義(:検査) {|*引数, &塊| inspect(*引数, &塊) } # inspectを継承先で再定義するかもしれないので別名にしない
217
+ # 別名 :ハッシュ値, :hash # hashを継承先で再定義するかもしれないので別名にしない
218
+ # 別名 :検査, :inspect # inspectを継承先で再定義するかもしれないので別名にしない
214
219
  別名 :生成物か?, :instance_of?
215
220
  別名 :生成物の変数は定義済みか?, :instance_variable_defined?
216
221
  別名 :生成物の変数を取得, :instance_variable_get
@@ -229,7 +234,7 @@ require 'japanize/core'
229
234
  別名 :公開された範囲で送信, :public_send
230
235
  別名 :生成物の変数を除去する, :remove_instance_variable
231
236
  別名 :応答するか?, :respond_to?
232
- # 別名 :特異組, :singleton_class # japanize/coreで定義済み
237
+ # 別名 :特異組, :singleton_class # japanize/coreで定義済み
233
238
  別名 :特異操作を取得, :singleton_method
234
239
  別名 :特異操作の一覧, :singleton_methods
235
240
  別名 :汚染させる, :taint
@@ -237,26 +242,45 @@ require 'japanize/core'
237
242
  別名 :蛇口, :tap
238
243
  別名 :それから, :then
239
244
  別名 :自分を委ねる, :yield_self
240
- 定義(:文字列に変換) {|*引数, &塊| to_s(*引数, &塊) } # to_sを継承先で再定義するかもしれないので別名にしない
245
+ # 別名 :文字列に変換, :to_s # to_sを継承先で再定義するかもしれないので別名にしない
241
246
  別名 :汚染を除去する, :untaint
242
247
 
243
- 別名 :初期化, :initialize
244
248
  別名 :不明な応答か?, :respond_to_missing?
245
249
 
246
- 秘密 :初期化,
247
- :不明な応答か?
250
+ 秘密 :不明な応答か?
251
+ }
252
+
253
+ 組(物) {
254
+ 定義(:等しいか?) {|他の物| eql?(他の物) } # eql?を継承先で再定義するかもしれないので別名にしない
255
+ 定義(:凍結する) { freeze } # freezeを継承先で再定義するかもしれないので別名にしない
256
+ 定義(:ハッシュ値) { hash } # hashを継承先で再定義するかもしれないので別名にしない
257
+ if (_バージョンが2_7以上か?) then
258
+ 定義(:複写) {|*引数, **名前付き引数, &塊| clone(*引数, **名前付き引数, &塊) } # cloneを継承先で再定義するかもしれないので別名にしない
259
+ 定義(:複製) {|*引数, **名前付き引数, &塊| dup(*引数, **名前付き引数, &塊) } # dupを継承先で再定義するかもしれないので別名にしない
260
+ 定義(:検査) {|*引数, **名前付き引数, &塊| inspect(*引数, **名前付き引数, &塊) } # inspectを継承先で再定義するかもしれないので別名にしない
261
+ 定義(:文字列に変換) {|*引数, **名前付き引数, &塊| to_s(*引数, **名前付き引数, &塊) } # to_sを継承先で再定義するかもしれないので別名にしない
262
+ else
263
+ 定義(:複写) {|*引数, &塊| clone(*引数, &塊) } # cloneを継承先で再定義するかもしれないので別名にしない
264
+ 定義(:複製) {|*引数, &塊| dup(*引数, &塊) } # dupを継承先で再定義するかもしれないので別名にしない
265
+ 定義(:検査) {|*引数, &塊| inspect(*引数, &塊) } # inspectを継承先で再定義するかもしれないので別名にしない
266
+ 定義(:文字列に変換) {|*引数, &塊| to_s(*引数, &塊) } # to_sを継承先で再定義するかもしれないので別名にしない
267
+ end
248
268
  }
249
269
 
250
270
  部(日本語化) {
251
271
  # initializeを直接上書きすると警告が出るので、間接的に上書きする。
252
272
  部(:物の初期化を日本語化する) {
253
- 定義(:initialize) {|*引数, &塊| 初期化(*引数, &塊) }
273
+ if (_バージョンが2_7以上か?) then
274
+ 定義(:initialize) {|*引数, **名前付き引数, &塊| 初期化(*引数, **名前付き引数, &塊) }
275
+ else
276
+ 定義(:initialize) {|*引数, &塊| 初期化(*引数, &塊) }
277
+ end
254
278
  秘密 :initialize
255
279
  }
256
280
 
257
281
  # respond_to_missing?を直接上書きすると警告が出るので、間接的に上書きする。
258
282
  部(:物の不明な応答を日本語化する) {
259
- 定義(:respond_to_missing?) {|名前, *引数| 不明な応答か?(名前, *引数) }
283
+ 定義(:respond_to_missing?) {|名前, *引数| 不明な応答か?(名前, *引数) } # `**名前付き引数'を定義するとシステムスタックが超過する、何故?
260
284
  秘密 :respond_to_missing?
261
285
  }
262
286
 
@@ -269,61 +293,131 @@ require 'japanize/core'
269
293
  # 組の定義と被る変換関数を定義する。
270
294
  部(核) {
271
295
  部(:変換関数の日本語化) {
272
- 定義(:配列) {|*引数|
273
- if (引数.empty?) then
274
- Array
275
- else
276
- Array(*引数)
277
- end
278
- }
296
+ if (_バージョンが2_7以上か?) then
297
+ 定義(:配列) {|*引数, **名前付き引数, &塊|
298
+ if (引数.empty? && 名前付き引数.empty? && ! 塊) then
299
+ Array
300
+ else
301
+ Array(*引数, **名前付き引数, &塊)
302
+ end
303
+ }
304
+ else
305
+ 定義(:配列) {|*引数, &塊|
306
+ if (引数.empty? &&! 塊) then
307
+ Array
308
+ else
309
+ Array(*引数, &塊)
310
+ end
311
+ }
312
+ end
279
313
 
280
- 定義(:複素数) {|*引数|
281
- if (引数.empty?) then
282
- Complex
283
- else
284
- Complex(*引数)
285
- end
286
- }
314
+ if (_バージョンが2_7以上か?) then
315
+ 定義(:複素数) {|*引数, **名前付き引数, &塊|
316
+ if (引数.empty? && 名前付き引数.empty? && ! 塊) then
317
+ Complex
318
+ else
319
+ Complex(*引数, **名前付き引数, &塊)
320
+ end
321
+ }
322
+ else
323
+ 定義(:複素数) {|*引数, &塊|
324
+ if (引数.empty? && ! 塊) then
325
+ Complex
326
+ else
327
+ Complex(*引数, &塊)
328
+ end
329
+ }
330
+ end
287
331
 
288
- 定義(:不動小数点) {|*引数|
289
- if (引数.empty?) then
290
- Float
291
- else
292
- Float(*引数)
293
- end
294
- }
332
+ if (_バージョンが2_7以上か?) then
333
+ 定義(:不動小数点) {|*引数, **名前付き引数, &塊|
334
+ if (引数.empty? && 名前付き引数.empty? && ! 塊) then
335
+ Float
336
+ else
337
+ Float(*引数, **名前付き引数, &塊)
338
+ end
339
+ }
340
+ else
341
+ 定義(:不動小数点) {|*引数, &塊|
342
+ if (引数.empty? && ! 塊) then
343
+ Float
344
+ else
345
+ Float(*引数, &塊)
346
+ end
347
+ }
348
+ end
295
349
 
296
- 定義(:連想配列) {|*引数|
297
- if (引数.empty?) then
298
- Hash
299
- else
300
- Hash(*引数)
301
- end
302
- }
350
+ if (_バージョンが2_7以上か?) then
351
+ 定義(:連想配列) {|*引数, **名前付き引数, &塊|
352
+ if (引数.empty? && 名前付き引数.empty? && ! 塊) then
353
+ Hash
354
+ else
355
+ Hash(*引数, **名前付き引数, &塊)
356
+ end
357
+ }
358
+ else
359
+ 定義(:連想配列) {|*引数, &塊|
360
+ if (引数.empty? && ! 塊) then
361
+ Hash
362
+ else
363
+ Hash(*引数, &塊)
364
+ end
365
+ }
366
+ end
303
367
 
304
- 定義(:整数) {|*引数|
305
- if (引数.empty?) then
306
- Integer
307
- else
308
- Integer(*引数)
309
- end
310
- }
368
+ if (_バージョンが2_7以上か?) then
369
+ 定義(:整数) {|*引数, **名前付き引数, &塊|
370
+ if (引数.empty? && 名前付き引数.empty? && ! 塊) then
371
+ Integer
372
+ else
373
+ Integer(*引数, **名前付き引数, &塊)
374
+ end
375
+ }
376
+ else
377
+ 定義(:整数) {|*引数, &塊|
378
+ if (引数.empty? &&! 塊) then
379
+ Integer
380
+ else
381
+ Integer(*引数, &塊)
382
+ end
383
+ }
384
+ end
311
385
 
312
- 定義(:有理数) {|*引数|
313
- if (引数.empty?) then
314
- Rational
315
- else
316
- Rational(*引数)
317
- end
318
- }
386
+ if (_バージョンが2_7以上か?) then
387
+ 定義(:有理数) {|*引数, **名前付き引数, &塊|
388
+ if (引数.empty? && 名前付き引数.empty? && ! 塊) then
389
+ Rational
390
+ else
391
+ Rational(*引数, **名前付き引数, &塊)
392
+ end
393
+ }
394
+ else
395
+ 定義(:有理数) {|*引数, &塊|
396
+ if (引数.empty? && ! 塊) then
397
+ Rational
398
+ else
399
+ Rational(*引数, &塊)
400
+ end
401
+ }
402
+ end
319
403
 
320
- 定義(:文字列) {|*引数|
321
- if (引数.empty?) then
322
- String
323
- else
324
- String(*引数)
325
- end
326
- }
404
+ if (_バージョンが2_7以上か?) then
405
+ 定義(:文字列) {|*引数, **名前付き引数, &塊|
406
+ if (引数.empty? && 名前付き引数.empty? && ! 塊) then
407
+ String
408
+ else
409
+ String(*引数, **名前付き引数, &塊)
410
+ end
411
+ }
412
+ else
413
+ 定義(:文字列) {|*引数, &塊|
414
+ if (引数.empty? && ! 塊) then
415
+ String
416
+ else
417
+ String(*引数, &塊)
418
+ end
419
+ }
420
+ end
327
421
  }
328
422
  拡張 変換関数の日本語化
329
423
  }
@@ -466,7 +560,8 @@ require 'japanize/core'
466
560
 
467
561
  組(例外) {
468
562
  特異組{
469
- 別名 :例外を生成, :exception
563
+ 別名 :例外を生成, :exception
564
+ 別名 :端末に向かっているか?, :to_tty?
470
565
  }
471
566
 
472
567
  別名 :呼び出し履歴, :backtrace
@@ -477,21 +572,35 @@ require 'japanize/core'
477
572
  # 別名 :検査, :inspect # 物で定義済み
478
573
  別名 :伝文, :message
479
574
  # 別名 :文字列に変換, :to_s # 物で定義済み
575
+ 別名 :応答するか?, :respond_to?
480
576
  別名 :呼び出し履歴を設定, :set_backtrace
481
577
  }
482
578
 
483
579
  部(日本語化) {
484
580
  部(:不明な操作の呼び出し履歴を消す) {
485
- 定義(:不明な操作) {|名前, *引数, &塊|
486
- begin
487
- super(名前, *引数, &塊)
488
- rescue 名前解決に失敗 => ある例外
489
- # 物#不明な操作 Object#method_missing の履歴を消して、元の場所で例外が発生したように見せる
490
- ある例外.呼び出し履歴.shift(2)
491
- ある例外.呼び出し履歴の場所の一覧.shift(2)
492
- 例外を発生 ある例外
493
- end
494
- }
581
+ if (_バージョンが2_7以上か?) then
582
+ 定義(:不明な操作) {|名前, *引数, **名前付き引数, &塊|
583
+ begin
584
+ super(名前, *引数, **名前付き引数, &塊)
585
+ rescue ::JA::名前解決に失敗 => ある例外
586
+ # 物#不明な操作 と Object#method_missing の履歴を消して、元の場所で例外が発生したように見せる
587
+ ある例外.呼び出し履歴.shift(2)
588
+ ある例外.呼び出し履歴の場所の一覧.shift(2)
589
+ ::JA::核.例外を発生 ある例外
590
+ end
591
+ }
592
+ else
593
+ 定義(:不明な操作) {|名前, *引数, &塊|
594
+ begin
595
+ super(名前, *引数, &塊)
596
+ rescue ::JA::名前解決に失敗 => ある例外
597
+ # 物#不明な操作 と Object#method_missing の履歴を消して、元の場所で例外が発生したように見せる
598
+ ある例外.呼び出し履歴.shift(2)
599
+ ある例外.呼び出し履歴の場所の一覧.shift(2)
600
+ ::JA::核.例外を発生 ある例外
601
+ end
602
+ }
603
+ end
495
604
  }
496
605
 
497
606
  組(物の土台) {
@@ -552,9 +661,15 @@ require 'japanize/core'
552
661
  super(名前)
553
662
  if (本来の名前 = 日本語化対応表[名前]) then
554
663
  if (! (操作は定義済みか? 本来の名前) || (生成物が持つ操作を取得(名前) != 生成物が持つ操作を取得(本来の名前))) then
555
- 定義(本来の名前) {|*引数, &塊|
556
- __送信__(名前, *引数, &塊)
557
- }
664
+ if (_バージョンが2_7以上か?) then
665
+ 定義(本来の名前) {|*引数, **名前付き引数, &塊|
666
+ __送信__(名前, *引数, **名前付き引数, &塊)
667
+ }
668
+ else
669
+ 定義(本来の名前) {|*引数, &塊|
670
+ __送信__(名前, *引数, &塊)
671
+ }
672
+ end
558
673
  end
559
674
  end
560
675
  }
@@ -589,9 +704,15 @@ require 'japanize/core'
589
704
  if (本来の名前 = 日本語化対応表[名前]) then
590
705
  特異組{
591
706
  if (! (操作は定義済みか? 本来の名前) || (生成物が持つ操作を取得(名前) != 生成物が持つ操作を取得(本来の名前))) then
592
- 定義(本来の名前) {|*引数, &塊|
593
- __送信__(名前, *引数, &塊)
594
- }
707
+ if (_バージョンが2_7以上か?) then
708
+ 定義(本来の名前) {|*引数, **名前付き引数, &塊|
709
+ __送信__(名前, *引数, **名前付き引数, &塊)
710
+ }
711
+ else
712
+ 定義(本来の名前) {|*引数, &塊|
713
+ __送信__(名前, *引数, &塊)
714
+ }
715
+ end
595
716
  end
596
717
  }
597
718
  end