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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4fbe59be73ebf75ddaf9f98a6902a7d6ec4880985ce399cd68323b74fe5c725
4
- data.tar.gz: 19c9223beab7356c2e74e94c622fcb2bd17580eeffd872edb41215090054fb1e
3
+ metadata.gz: d60fe176c0d4c5bfc72813dafea19b578eea210a96506ee17133fcd593f4560f
4
+ data.tar.gz: 9e8f830b8a152efba493d575948ec160c89bc90559392589ea0608e0bb57a1e9
5
5
  SHA512:
6
- metadata.gz: 67c9c4fe09fb839b48b7102e9fd68c245766677c9038b47d1e2c1747dcb8943c5a0a80fa19814c74504dcd677060647c1da93352a7ef043ecb58e6ef8073a0f7
7
- data.tar.gz: 10424b4496d6b879fcb89dbf90294fc9c72d0c6fbc56eb3ad1384a112f8aa5440d4a7be3e2171a998f9575083ec5d48f32fd309749367872232ee1d380754b75
6
+ metadata.gz: f91ef9e1de204aed27454204ee5b1a0bd1630d086f13ad81d26da24fcb573f9bc2c11ba1985c15c975437e5e264baa163501e7d7323de5cc86f0ef71866e7bb8
7
+ data.tar.gz: f548c7464d4e5042fbc3f2bfb41f6f7983e6b7fb17f5ee02755546178373bac6cfe3c85a823c1c1c474b50cda33d58d8e4b69db4fae802a548b17ee5b03be2d6
data/.gitignore CHANGED
@@ -13,6 +13,7 @@
13
13
  /Gemfile.lock
14
14
  /Gemfile_local*
15
15
  /README.html
16
+ /CHANGELOG.html
16
17
  *~
17
18
  .#*
18
19
  \#*
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
- 別名 :機能を付加する, :append_features
64
- 別名 :物を拡張する, :extend_object
65
- 別名 :拡張した時, :extended
64
+ 別名 :機能を付加する, :append_features
65
+ 別名 :物を拡張する, :extend_object
66
+ 別名 :拡張した時, :extended
66
67
  定義(:extended) {|物| 拡張した時(物) }
67
- 別名 :付加された時, :included
68
+ 別名 :付加された時, :included
68
69
  定義(:included) {|組または部| 付加された時(組または部) }
69
- 別名 :操作が追加された時, :method_added
70
+ 別名 :操作が追加された時, :method_added
70
71
  定義(:method_added) {|名前| 操作が追加された時(名前) }
71
- 別名 :操作が除去された時, :method_removed
72
+ 別名 :操作が除去された時, :method_removed
72
73
  定義(:method_removed) {|名前| 操作が除去された時(名前) }
73
- 別名 :操作が未定義にされた時, :method_undefined
74
+ 別名 :操作が未定義にされた時, :method_undefined
74
75
  定義(:method_undefined) {|名前| 操作が未定義にされた時(名前) }
75
- # 別名 :部の関数, :module_function # japanize/coreで定義済み
76
- 別名 :機能を付与する, :prepend_features
77
- 別名 :付与された時, :prepended
76
+ # 別名 :部の関数, :module_function # japanize/coreで定義済み
77
+ 別名 :機能を付与する, :prepend_features
78
+ 別名 :付与された時, :prepended
78
79
  定義(:prepended) {|組または部| 付与された時(組または部) }
79
- # 別名 :秘密, :private # japanize/coreで定義済み
80
- 別名 :保護, :protected
81
- 別名 :公開, :public
82
- 別名 :限定拡張, :refine
83
- 別名 :定数を除去する, :remove_const
84
- 別名 :限定拡張を使用, :using
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
- if (_バージョンが2_7以上か?) then
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
- if (::JA::日本語化._バージョンが2_7以上か?) then
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
- 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
249
+ `定義 複写(...); clone(...)`
250
+ `定義 複製(...); dup(...)`
251
+ `定義 検査(...); inspect(...)`
252
+ `定義 文字列に変換(...); to_s(...)`
268
253
  }
269
254
 
270
255
  部(日本語化) {
271
256
  # initializeを直接上書きすると警告が出るので、間接的に上書きする。
272
257
  部(:物の初期化を日本語化する) {
273
- if (_バージョンが2_7以上か?) then
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
- 定義(:respond_to_missing?) {|名前, *引数| 不明な応答か?(名前, *引数) } # `**名前付き引数'を定義するとシステムスタックが超過する、何故?
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
- 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
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
- if (_バージョンが2_7以上か?) then
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
- if (_バージョンが2_7以上か?) then
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