ruby-japanize 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +71 -0
- data/README.md +139 -0
- data/Rakefile +4 -0
- data/lib/japanize/base.rb +57 -96
- data/lib/japanize/container.rb +8 -0
- data/lib/japanize/core.rb +48 -0
- data/lib/japanize/enum.rb +15 -0
- data/lib/japanize/errors.rb +14 -0
- data/lib/japanize/globals.rb +6 -0
- data/lib/japanize/io.rb +75 -73
- data/lib/japanize/names.rb +2 -0
- data/lib/japanize/num.rb +2 -2
- data/lib/japanize/process.rb +84 -72
- data/lib/japanize/string.rb +2 -0
- data/lib/japanize/sys.rb +18 -14
- data/lib/japanize/thread.rb +3 -6
- data/lib/japanize/time.rb +14 -26
- data/lib/japanize/version.rb +1 -1
- data/misc/dump_lib.rb +99 -29
- data/ruby-japanize.gemspec +3 -2
- metadata +26 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d60fe176c0d4c5bfc72813dafea19b578eea210a96506ee17133fcd593f4560f
|
4
|
+
data.tar.gz: 9e8f830b8a152efba493d575948ec160c89bc90559392589ea0608e0bb57a1e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f91ef9e1de204aed27454204ee5b1a0bd1630d086f13ad81d26da24fcb573f9bc2c11ba1985c15c975437e5e264baa163501e7d7323de5cc86f0ef71866e7bb8
|
7
|
+
data.tar.gz: f548c7464d4e5042fbc3f2bfb41f6f7983e6b7fb17f5ee02755546178373bac6cfe3c85a823c1c1c474b50cda33d58d8e4b69db4fae802a548b17ee5b03be2d6
|
data/.gitignore
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
更新履歴
|
2
|
+
========
|
3
|
+
|
4
|
+
0.3.0
|
5
|
+
-----
|
6
|
+
2020年1月19日に公開。
|
7
|
+
|
8
|
+
### 機能の追加
|
9
|
+
- Ruby 2.7で追加された組み込みライブラリを日本語化した。
|
10
|
+
[#4](https://github.com/y10k/ruby-japanize/issues/4),
|
11
|
+
[#17](https://github.com/y10k/ruby-japanize/issues/17)
|
12
|
+
- Ruby 2.7.0で動くようにした。
|
13
|
+
[#8](https://github.com/y10k/ruby-japanize/issues/8)
|
14
|
+
- 日本語の操作(メソッド)を定義する逆引用符(`` ` ``)記法を追加した。
|
15
|
+
[#9](https://github.com/y10k/ruby-japanize/issues/9)
|
16
|
+
- 日本語化していない定数を日本語化した。
|
17
|
+
[#14](https://github.com/y10k/ruby-japanize/issues/14)
|
18
|
+
- 更新履歴を追加した。
|
19
|
+
[#16](https://github.com/y10k/ruby-japanize/issues/16)
|
20
|
+
- 物(オブジェクト)の初期化の説明を添付文書に追加した。
|
21
|
+
[#18](https://github.com/y10k/ruby-japanize/issues/18)
|
22
|
+
|
23
|
+
### 機能の変更
|
24
|
+
- 数学関数の日本語名を変更した。
|
25
|
+
[#7](https://github.com/y10k/ruby-japanize/issues/7)
|
26
|
+
- `source_location`の日本語名を変更した。
|
27
|
+
[#10](https://github.com/y10k/ruby-japanize/issues/10)
|
28
|
+
- 環境に依存する定数は使用可能なときだけ日本語名を定義するように変更した。
|
29
|
+
[#11](https://github.com/y10k/ruby-japanize/issues/11)
|
30
|
+
- システムコールのclock_gettime(2)関連の関数と定数の日本語名を変更した。
|
31
|
+
[#12](https://github.com/y10k/ruby-japanize/issues/12)
|
32
|
+
- システムコールのgetrlimit(2)関連の定数の日本語名を変更した。
|
33
|
+
[#13](https://github.com/y10k/ruby-japanize/issues/13)
|
34
|
+
- `Process::RLIMIT_NOFILE`の日本語名を変更した。
|
35
|
+
[#15](https://github.com/y10k/ruby-japanize/issues/15)
|
36
|
+
|
37
|
+
### 機能の削除
|
38
|
+
無し。
|
39
|
+
|
40
|
+
### 問題の修正
|
41
|
+
無し。
|
42
|
+
|
43
|
+
0.2.0
|
44
|
+
-----
|
45
|
+
2019年12月5日に公開。
|
46
|
+
|
47
|
+
### 機能の追加
|
48
|
+
- Ruby 2.7で追加された組み込みライブラリを日本語化するために、組み込み
|
49
|
+
ライブラリを可視化するツールを追加した。
|
50
|
+
[#4](https://github.com/y10k/ruby-japanize/issues/4)
|
51
|
+
- Ruby 2.6.5でまだ日本語化していない操作(メソッド)を日本語化した。
|
52
|
+
[#6](https://github.com/y10k/ruby-japanize/issues/6)
|
53
|
+
|
54
|
+
### 機能の変更
|
55
|
+
- `物`(`Object`)の操作(メソッド)の日本語の別名を`核`(`Kernel`)に移動した。
|
56
|
+
[#1](https://github.com/y10k/ruby-japanize/issues/1)
|
57
|
+
|
58
|
+
### 機能の削除
|
59
|
+
無し。
|
60
|
+
|
61
|
+
### 問題の修正
|
62
|
+
- `物の土台`(`BasicObject`)でシステムのスタックが超過(`SystemStackError`)する問題を修正した。
|
63
|
+
[#2](https://github.com/y10k/ruby-japanize/issues/2)
|
64
|
+
- Ruby 2.7.0-preview2で警告が出る問題を修正した。
|
65
|
+
[#3](https://github.com/y10k/ruby-japanize/issues/3)
|
66
|
+
- Ruby 2.6の引数の移譲で`連想配列`(`Hash`)が名前付き引数と混同される問題を修正した。
|
67
|
+
[#5](https://github.com/y10k/ruby-japanize/issues/5)
|
68
|
+
|
69
|
+
0.1.0
|
70
|
+
-----
|
71
|
+
2019年10月14日に公開。
|
data/README.md
CHANGED
@@ -1080,6 +1080,8 @@ Rubyのいくつかのメソッド(操作)はシステムと連係します。
|
|
1080
1080
|
|入れ物の操作 |`キーを持つか?` |`has_key?` |
|
1081
1081
|
|入れ物の操作 |`含むか?` |`include?` |
|
1082
1082
|
|入れ物の操作 |`一員か?` |`member?` |
|
1083
|
+
|物を分解する操作 |`分解` |`deconstruct` |
|
1084
|
+
|物を分解する操作 |`キーで分解` |`deconstruct_keys` |
|
1083
1085
|
|
1084
1086
|
#### 特異メソッド(特異操作)の定義
|
1085
1087
|
|
@@ -1123,6 +1125,85 @@ end
|
|
1123
1125
|
|
1124
1126
|
通常のメソッド(操作)と同様です。
|
1125
1127
|
|
1128
|
+
#### 逆引用符(`)記法によるメソッド(操作)の定義
|
1129
|
+
|
1130
|
+
逆引用符(`` ` ``)内で`定義`を使うことでメソッド(操作)を定義でき
|
1131
|
+
ます。この逆引用符(`` ` ``)記法はRubyの`def`文によるメソッド(操作)
|
1132
|
+
の定義に相当します。Rubyの`def`文は`end`で終了する必要がありますが、バッ
|
1133
|
+
ククォート(`` ` ``)記法は逆引用符(`` ` ``)で終了が明示されるので
|
1134
|
+
`end`に相当する日本語の予約語はありません。
|
1135
|
+
|
1136
|
+
元のRubyスクリプトの例:
|
1137
|
+
|
1138
|
+
```ruby
|
1139
|
+
def fact(n)
|
1140
|
+
if (n == 1) then
|
1141
|
+
1
|
1142
|
+
else
|
1143
|
+
n * fact(n - 1)
|
1144
|
+
end
|
1145
|
+
end
|
1146
|
+
```
|
1147
|
+
|
1148
|
+
日本語で書いたRubyスクリプトの例:
|
1149
|
+
|
1150
|
+
```ruby
|
1151
|
+
`定義 階乗(数)
|
1152
|
+
もし条件が{ 数 == 1 }.であるなら{
|
1153
|
+
1
|
1154
|
+
}.でなければ{
|
1155
|
+
数 * 階乗(数 - 1)
|
1156
|
+
}.である
|
1157
|
+
`
|
1158
|
+
```
|
1159
|
+
|
1160
|
+
##### メソッド(操作)の引数を転送する略記法
|
1161
|
+
|
1162
|
+
逆引用符(`` ` ``)記法によるメソッド(操作)の定義ではRuby 2.7で導
|
1163
|
+
入された、メソッド(操作)の引数を転送する略記法(`(...)`)が使えます。ま
|
1164
|
+
たRuby 2.7だけでなくRuby 2.6でも略記法(`(...)`)が使えます。
|
1165
|
+
|
1166
|
+
元のRubyスクリプトの例:
|
1167
|
+
|
1168
|
+
```ruby
|
1169
|
+
# Ruby 2.7から有効
|
1170
|
+
def foo(...)
|
1171
|
+
@other.foo(...)
|
1172
|
+
end
|
1173
|
+
```
|
1174
|
+
|
1175
|
+
日本語で書いたRubyスクリプトの例:
|
1176
|
+
|
1177
|
+
```ruby
|
1178
|
+
# Ruby 2.7だけでなくRuby 2.6でも有効
|
1179
|
+
`定義 甲(...)
|
1180
|
+
@別の物.甲(...)
|
1181
|
+
`
|
1182
|
+
```
|
1183
|
+
|
1184
|
+
##### メソッド(操作)の末尾の引数を転送する略記法
|
1185
|
+
|
1186
|
+
逆引用符(`` ` ``)記法によるメソッド(操作)の定義では末尾の引数を
|
1187
|
+
転送する略記法(`[...]`)が使えます。この略記法は独自の機能です。
|
1188
|
+
|
1189
|
+
元のRubyスクリプトの例:
|
1190
|
+
|
1191
|
+
```ruby
|
1192
|
+
# 明示的に引数を転送しなければならない
|
1193
|
+
def method_missing(name, *args, **kw_args, &block)
|
1194
|
+
@other.__send__(name, *args, **kw_args, &block)
|
1195
|
+
end
|
1196
|
+
```
|
1197
|
+
|
1198
|
+
日本語で書いたRubyスクリプトの例:
|
1199
|
+
|
1200
|
+
```ruby
|
1201
|
+
# 略記法で末尾の引数を転送できる
|
1202
|
+
`定義 不明な操作(名前, [...])
|
1203
|
+
@別の物.__送信__(名前, [...])
|
1204
|
+
`
|
1205
|
+
```
|
1206
|
+
|
1126
1207
|
### メソッド(操作)の呼び出し
|
1127
1208
|
|
1128
1209
|
メソッド(操作)の呼び出しは、メソッドの名前が日本語になっただけで元々の
|
@@ -1190,6 +1271,62 @@ end
|
|
1190
1271
|
}
|
1191
1272
|
```
|
1192
1273
|
|
1274
|
+
### オブジェクト(物)の初期化
|
1275
|
+
|
1276
|
+
`new`の代わりに`新規`を呼ぶことで新しいオブジェクト(物)を作成し、
|
1277
|
+
`initialize`の代わりに`初期化`を定義することでオブジェクトを初期化でき
|
1278
|
+
ます。
|
1279
|
+
|
1280
|
+
元のRubyスクリプトの例:
|
1281
|
+
|
1282
|
+
```ruby
|
1283
|
+
class Foo
|
1284
|
+
def initialize(name)
|
1285
|
+
puts "initialize Foo"
|
1286
|
+
@name = name
|
1287
|
+
end
|
1288
|
+
end
|
1289
|
+
|
1290
|
+
class Bar < Foo
|
1291
|
+
def initialize(name, pass)
|
1292
|
+
puts "initialize Bar"
|
1293
|
+
super(name)
|
1294
|
+
@pass = pass
|
1295
|
+
end
|
1296
|
+
end
|
1297
|
+
|
1298
|
+
it = Bar.new('myname', '0500')
|
1299
|
+
p it
|
1300
|
+
#=> initialize Bar
|
1301
|
+
# initialize Foo
|
1302
|
+
# #<Bar:0x2b68f08 @name="myname", @pass="0500">
|
1303
|
+
```
|
1304
|
+
|
1305
|
+
日本語で書いたRubyスクリプトの例:
|
1306
|
+
|
1307
|
+
```ruby
|
1308
|
+
組(:甲) {
|
1309
|
+
定義(:初期化) {|名前|
|
1310
|
+
行を出力 "甲を初期化"
|
1311
|
+
@名前 = 名前
|
1312
|
+
}
|
1313
|
+
}
|
1314
|
+
|
1315
|
+
組(:乙, 原型: 甲) {
|
1316
|
+
定義(:初期化) {|名前, 符丁|
|
1317
|
+
行を出力 "乙を初期化"
|
1318
|
+
super(名前)
|
1319
|
+
@符丁 = 符丁
|
1320
|
+
}
|
1321
|
+
}
|
1322
|
+
|
1323
|
+
ある物 = 乙.新規('自分の名前', '0500')
|
1324
|
+
点検 ある物
|
1325
|
+
#=> 乙を初期化
|
1326
|
+
# 甲を初期化
|
1327
|
+
# #<JA::JA乙:0x2b68f08 @名前="自分の名前", @符丁="0500">
|
1328
|
+
```
|
1329
|
+
|
1193
1330
|
### 日本語で書けない機能
|
1194
1331
|
|
1195
1332
|
次の予約語はメソッド(操作)による代替が困難なため日本語で書けません。
|
@@ -1276,6 +1413,7 @@ end
|
|
1276
1413
|
|`列挙::継手` |`Enumerator::Chain` |[`lib/japanize/enum.rb`][enum.rb] |
|
1277
1414
|
|`列挙::生成器` |`Enumerator::Generator` |[`lib/japanize/enum.rb`][enum.rb] |
|
1278
1415
|
|`列挙::補給器` |`Enumerator::Yielder` |[`lib/japanize/enum.rb`][enum.rb] |
|
1416
|
+
|`列挙::生産器` |`Enumerator::Producer` |[`lib/japanize/enum.rb`][enum.rb] |
|
1279
1417
|
|`列挙::等差数列` |`Enumerator::ArithmeticSequence`|[`lib/japanize/enum.rb`][enum.rb] |
|
1280
1418
|
|`列挙::遅延評価` |`Enumerator::Lazy` |[`lib/japanize/enum.rb`][enum.rb] |
|
1281
1419
|
|`偽値の組` |`FalseClass` |[`lib/japanize/base.rb`][base.rb] |
|
@@ -1388,6 +1526,7 @@ end
|
|
1388
1526
|
|`正規表現の失敗` |`RegexpError` |[`lib/japanize/names.rb`][names.rb] |
|
1389
1527
|
|`実行時の失敗` |`RuntimeError` |[`lib/japanize/names.rb`][names.rb] |
|
1390
1528
|
|`凍結済みのため失敗` |`FrozenError` |[`lib/japanize/names.rb`][names.rb] |
|
1529
|
+
|`適合する類型が無いため失敗` |`NoMatchingPatternError` |[`lib/japanize/names.rb`][names.rb] |
|
1391
1530
|
|`システムコールの失敗` |`SystemCallError` |[`lib/japanize/errors.rb`][errors.rb]|
|
1392
1531
|
|`スレッドの失敗` |`ThreadError` |[`lib/japanize/names.rb`][names.rb] |
|
1393
1532
|
|`型が合わないため失敗` |`TypeError` |[`lib/japanize/names.rb`][names.rb] |
|
data/Rakefile
CHANGED
@@ -18,6 +18,10 @@ desc 'Build README.html from markdown source'
|
|
18
18
|
task :readme => %w[ README.html ]
|
19
19
|
CLOBBER.include 'README.html'
|
20
20
|
|
21
|
+
desc 'Build CHANGELOT.html from markdown source'
|
22
|
+
task :changelog => %w[ CHANGELOG.html ]
|
23
|
+
CLOBBER.include 'CHANGELOG.html'
|
24
|
+
|
21
25
|
namespace :sample do
|
22
26
|
desc 'Build sample/README.html from markdown source'
|
23
27
|
task :readme => %w[ sample/README.html ]
|
data/lib/japanize/base.rb
CHANGED
@@ -33,6 +33,7 @@ require 'japanize/core'
|
|
33
33
|
別名 :不明な定数, :const_missing
|
34
34
|
定義(:const_missing) {|名前| 不明な定数(名前) }
|
35
35
|
# 別名 :定数を設定, :const_set # japanize/coreで定義済み
|
36
|
+
別名 :定数が定義された場所, :const_source_location if (method_defined? :const_source_location, 偽値)
|
36
37
|
別名 :定数の一覧, :constants
|
37
38
|
# 別名 :定義, :define_method # japanize/coreで定義済み
|
38
39
|
別名 :定数を非推奨にする, :deprecate_constant
|
@@ -60,28 +61,29 @@ require 'japanize/core'
|
|
60
61
|
別名 :特異組か?, :singleton_class?
|
61
62
|
別名 :操作を未定義にする, :undef_method
|
62
63
|
|
63
|
-
別名 :機能を付加する,
|
64
|
-
別名 :物を拡張する,
|
65
|
-
別名 :拡張した時,
|
64
|
+
別名 :機能を付加する, :append_features
|
65
|
+
別名 :物を拡張する, :extend_object
|
66
|
+
別名 :拡張した時, :extended
|
66
67
|
定義(:extended) {|物| 拡張した時(物) }
|
67
|
-
別名 :付加された時,
|
68
|
+
別名 :付加された時, :included
|
68
69
|
定義(:included) {|組または部| 付加された時(組または部) }
|
69
|
-
別名 :操作が追加された時,
|
70
|
+
別名 :操作が追加された時, :method_added
|
70
71
|
定義(:method_added) {|名前| 操作が追加された時(名前) }
|
71
|
-
別名 :操作が除去された時,
|
72
|
+
別名 :操作が除去された時, :method_removed
|
72
73
|
定義(:method_removed) {|名前| 操作が除去された時(名前) }
|
73
|
-
別名 :操作が未定義にされた時,
|
74
|
+
別名 :操作が未定義にされた時, :method_undefined
|
74
75
|
定義(:method_undefined) {|名前| 操作が未定義にされた時(名前) }
|
75
|
-
# 別名 :部の関数,
|
76
|
-
別名 :機能を付与する,
|
77
|
-
別名 :付与された時,
|
76
|
+
# 別名 :部の関数, :module_function # japanize/coreで定義済み
|
77
|
+
別名 :機能を付与する, :prepend_features
|
78
|
+
別名 :付与された時, :prepended
|
78
79
|
定義(:prepended) {|組または部| 付与された時(組または部) }
|
79
|
-
# 別名 :秘密,
|
80
|
-
別名 :保護,
|
81
|
-
別名 :公開,
|
82
|
-
別名 :限定拡張,
|
83
|
-
別名 :定数を除去する,
|
84
|
-
別名
|
80
|
+
# 別名 :秘密, :private # japanize/coreで定義済み
|
81
|
+
別名 :保護, :protected
|
82
|
+
別名 :公開, :public
|
83
|
+
別名 :限定拡張, :refine
|
84
|
+
別名 :定数を除去する, :remove_const
|
85
|
+
別名 :ruby2互換の名前付き引数, :ruby2_keywords if (秘密の操作は定義済みか? :ruby2_keywords, 偽値)
|
86
|
+
別名 :限定拡張を使用, :using
|
85
87
|
|
86
88
|
秘密 :機能を付加する,
|
87
89
|
:物を拡張する,
|
@@ -98,6 +100,8 @@ require 'japanize/core'
|
|
98
100
|
:定数を除去する,
|
99
101
|
:限定拡張を使用
|
100
102
|
|
103
|
+
秘密 :ruby2互換の名前付き引数 if (秘密の操作は定義済みか? :ruby2_keywords, 偽値)
|
104
|
+
|
101
105
|
定義(:日本語の定数を移譲) {|移譲先の部, 名前, *名前の一覧, 上書き: 偽値|
|
102
106
|
名前の一覧 = [ 名前 ] + 名前の一覧
|
103
107
|
|
@@ -156,11 +160,7 @@ require 'japanize/core'
|
|
156
160
|
}
|
157
161
|
|
158
162
|
別名 :生成, :allocate
|
159
|
-
|
160
|
-
定義(:新規) {|*引数, **名前付き引数, &塊| new(*引数, **名前付き引数, &塊) } # 個別の組でnewを再定義するかもしれないので別名にしない
|
161
|
-
else
|
162
|
-
定義(:新規) {|*引数, &塊| new(*引数, &塊) } # 個別の組でnewを再定義するかもしれないので別名にしない
|
163
|
-
end
|
163
|
+
`定義 新規(...); new(...)`
|
164
164
|
別名 :原型, :superclass
|
165
165
|
|
166
166
|
別名 :継承された時, :inherited
|
@@ -178,15 +178,7 @@ require 'japanize/core'
|
|
178
178
|
|
179
179
|
別名 :初期化, :initialize
|
180
180
|
別名 :不明な操作, :method_missing
|
181
|
-
|
182
|
-
定義(:method_missing) {|名前, *引数, **名前付き引数, &塊|
|
183
|
-
不明な操作(名前, *引数, **名前付き引数, &塊)
|
184
|
-
}
|
185
|
-
else
|
186
|
-
定義(:method_missing) {|名前, *引数, &塊|
|
187
|
-
不明な操作(名前, *引数, &塊)
|
188
|
-
}
|
189
|
-
end
|
181
|
+
`定義 method_missing(...); 不明な操作(...)`
|
190
182
|
別名 :特異操作が追加された時, :singleton_method_added
|
191
183
|
定義(:singleton_method_added) {|名前| 特異操作が追加された時(名前) }
|
192
184
|
別名 :特異操作が除去された時, :singleton_method_removed
|
@@ -254,33 +246,22 @@ require 'japanize/core'
|
|
254
246
|
定義(:等しいか?) {|他の物| eql?(他の物) } # eql?を継承先で再定義するかもしれないので別名にしない
|
255
247
|
定義(:凍結する) { freeze } # freezeを継承先で再定義するかもしれないので別名にしない
|
256
248
|
定義(:ハッシュ値) { hash } # hashを継承先で再定義するかもしれないので別名にしない
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
定義(:文字列に変換) {|*引数, **名前付き引数, &塊| to_s(*引数, **名前付き引数, &塊) } # to_sを継承先で再定義するかもしれないので別名にしない
|
262
|
-
else
|
263
|
-
定義(:複写) {|*引数, &塊| clone(*引数, &塊) } # cloneを継承先で再定義するかもしれないので別名にしない
|
264
|
-
定義(:複製) {|*引数, &塊| dup(*引数, &塊) } # dupを継承先で再定義するかもしれないので別名にしない
|
265
|
-
定義(:検査) {|*引数, &塊| inspect(*引数, &塊) } # inspectを継承先で再定義するかもしれないので別名にしない
|
266
|
-
定義(:文字列に変換) {|*引数, &塊| to_s(*引数, &塊) } # to_sを継承先で再定義するかもしれないので別名にしない
|
267
|
-
end
|
249
|
+
`定義 複写(...); clone(...)`
|
250
|
+
`定義 複製(...); dup(...)`
|
251
|
+
`定義 検査(...); inspect(...)`
|
252
|
+
`定義 文字列に変換(...); to_s(...)`
|
268
253
|
}
|
269
254
|
|
270
255
|
部(日本語化) {
|
271
256
|
# initializeを直接上書きすると警告が出るので、間接的に上書きする。
|
272
257
|
部(:物の初期化を日本語化する) {
|
273
|
-
|
274
|
-
定義(:initialize) {|*引数, **名前付き引数, &塊| 初期化(*引数, **名前付き引数, &塊) }
|
275
|
-
else
|
276
|
-
定義(:initialize) {|*引数, &塊| 初期化(*引数, &塊) }
|
277
|
-
end
|
258
|
+
`定義 initialize(...); 初期化(...)`
|
278
259
|
秘密 :initialize
|
279
260
|
}
|
280
261
|
|
281
262
|
# respond_to_missing?を直接上書きすると警告が出るので、間接的に上書きする。
|
282
263
|
部(:物の不明な応答を日本語化する) {
|
283
|
-
|
264
|
+
`定義 respond_to_missing?(...); 不明な応答か?(...)`
|
284
265
|
秘密 :respond_to_missing?
|
285
266
|
}
|
286
267
|
|
@@ -330,7 +311,7 @@ require 'japanize/core'
|
|
330
311
|
end
|
331
312
|
|
332
313
|
if (_バージョンが2_7以上か?) then
|
333
|
-
定義(
|
314
|
+
定義(:浮動小数点) {|*引数, **名前付き引数, &塊|
|
334
315
|
if (引数.empty? && 名前付き引数.empty? && ! 塊) then
|
335
316
|
Float
|
336
317
|
else
|
@@ -338,7 +319,7 @@ require 'japanize/core'
|
|
338
319
|
end
|
339
320
|
}
|
340
321
|
else
|
341
|
-
定義(
|
322
|
+
定義(:浮動小数点) {|*引数, &塊|
|
342
323
|
if (引数.empty? && ! 塊) then
|
343
324
|
Float
|
344
325
|
else
|
@@ -578,29 +559,16 @@ require 'japanize/core'
|
|
578
559
|
|
579
560
|
部(日本語化) {
|
580
561
|
部(:不明な操作の呼び出し履歴を消す) {
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
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
|
562
|
+
`定義 不明な操作(...)
|
563
|
+
begin
|
564
|
+
super
|
565
|
+
rescue ::JA::名前解決に失敗 => ある例外
|
566
|
+
# 物#不明な操作 と Object#method_missing の履歴を消して、元の場所で例外が発生したように見せる
|
567
|
+
ある例外.呼び出し履歴.shift(2)
|
568
|
+
ある例外.呼び出し履歴の場所の一覧.shift(2)
|
569
|
+
::JA::核.例外を発生 ある例外
|
570
|
+
end
|
571
|
+
`
|
604
572
|
}
|
605
573
|
|
606
574
|
組(物の土台) {
|
@@ -655,21 +623,18 @@ require 'japanize/core'
|
|
655
623
|
一員か?: :member?
|
656
624
|
}
|
657
625
|
|
626
|
+
日本語の定数 :物を分解する操作の日本語化対応表, {
|
627
|
+
分解: :deconstruct,
|
628
|
+
キーで分解: :deconstruct_keys
|
629
|
+
}
|
630
|
+
|
658
631
|
特異操作の定義(:操作を日本語化できる部を作る) {|日本語化対応表|
|
659
632
|
部(部.新規) {
|
660
633
|
定義(:操作が追加された時) {|名前|
|
661
634
|
super(名前)
|
662
635
|
if (本来の名前 = 日本語化対応表[名前]) then
|
663
636
|
if (! (操作は定義済みか? 本来の名前) || (生成物が持つ操作を取得(名前) != 生成物が持つ操作を取得(本来の名前))) then
|
664
|
-
|
665
|
-
定義(本来の名前) {|*引数, **名前付き引数, &塊|
|
666
|
-
__送信__(名前, *引数, **名前付き引数, &塊)
|
667
|
-
}
|
668
|
-
else
|
669
|
-
定義(本来の名前) {|*引数, &塊|
|
670
|
-
__送信__(名前, *引数, &塊)
|
671
|
-
}
|
672
|
-
end
|
637
|
+
`定義 #{本来の名前}([...]); __送信__(:#{名前}, [...])`
|
673
638
|
end
|
674
639
|
end
|
675
640
|
}
|
@@ -704,15 +669,7 @@ require 'japanize/core'
|
|
704
669
|
if (本来の名前 = 日本語化対応表[名前]) then
|
705
670
|
特異組{
|
706
671
|
if (! (操作は定義済みか? 本来の名前) || (生成物が持つ操作を取得(名前) != 生成物が持つ操作を取得(本来の名前))) then
|
707
|
-
|
708
|
-
定義(本来の名前) {|*引数, **名前付き引数, &塊|
|
709
|
-
__送信__(名前, *引数, **名前付き引数, &塊)
|
710
|
-
}
|
711
|
-
else
|
712
|
-
定義(本来の名前) {|*引数, &塊|
|
713
|
-
__送信__(名前, *引数, &塊)
|
714
|
-
}
|
715
|
-
end
|
672
|
+
`定義 #{本来の名前}([...]); __送信__(:#{名前}, [...])`
|
716
673
|
end
|
717
674
|
}
|
718
675
|
end
|
@@ -745,25 +702,29 @@ require 'japanize/core'
|
|
745
702
|
}
|
746
703
|
}
|
747
704
|
|
748
|
-
日本語の定数 :変換操作を日本語化できる,
|
749
|
-
日本語の定数 :繰り返し操作を日本語化できる,
|
750
|
-
日本語の定数 :入れ物の操作を日本語化できる,
|
705
|
+
日本語の定数 :変換操作を日本語化できる, 操作を日本語化できる部を作る(変換操作の日本語化対応表)
|
706
|
+
日本語の定数 :繰り返し操作を日本語化できる, 操作を日本語化できる部を作る(繰り返し操作の日本語化対応表)
|
707
|
+
日本語の定数 :入れ物の操作を日本語化できる, 操作を日本語化できる部を作る(入れ物の操作の日本語化対応表)
|
708
|
+
日本語の定数 :物を分解する操作を日本語化できる, 操作を日本語化できる部を作る(物を分解する操作の日本語化対応表)
|
751
709
|
|
752
|
-
日本語の定数 :物の変換操作を日本語化できる,
|
753
|
-
日本語の定数 :物の繰り返し操作を日本語化できる,
|
754
|
-
日本語の定数 :物の入れ物の操作を日本語化できる,
|
710
|
+
日本語の定数 :物の変換操作を日本語化できる, 物の操作を日本語化できる部を作る(変換操作の日本語化対応表)
|
711
|
+
日本語の定数 :物の繰り返し操作を日本語化できる, 物の操作を日本語化できる部を作る(繰り返し操作の日本語化対応表)
|
712
|
+
日本語の定数 :物の入れ物の操作を日本語化できる, 物の操作を日本語化できる部を作る(入れ物の操作の日本語化対応表)
|
713
|
+
日本語の定数 :物の物を分解する操作を日本語化できる, 物の操作を日本語化できる部を作る(物を分解する操作の日本語化対応表)
|
755
714
|
}
|
756
715
|
|
757
716
|
組(部) {
|
758
717
|
付与 操作の日本語化::変換操作を日本語化できる
|
759
718
|
付与 操作の日本語化::繰り返し操作を日本語化できる
|
760
719
|
付与 操作の日本語化::入れ物の操作を日本語化できる
|
720
|
+
付与 操作の日本語化::物を分解する操作を日本語化できる
|
761
721
|
}
|
762
722
|
|
763
723
|
組(物) {
|
764
724
|
付与 操作の日本語化::物の変換操作を日本語化できる
|
765
725
|
付与 操作の日本語化::物の繰り返し操作を日本語化できる
|
766
726
|
付与 操作の日本語化::物の入れ物の操作を日本語化できる
|
727
|
+
付与 操作の日本語化::物の物を分解する操作を日本語化できる
|
767
728
|
}
|
768
729
|
}
|
769
730
|
|