Skip to content

Commit 5bfbd8f

Browse files
committed
docs: update
1 parent f1a3fd1 commit 5bfbd8f

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

docs/adr/0001-stop-sprite-when-method.ja.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,34 @@ Sorry, this is written in Japanese.
99

1010
# self.whenからself.を取り除いたRubyの命令を検討する
1111

12-
` :flags: が押されたとき` などの各種イベントに対応したブロック(以下、イベントブロック)からRubyの命令へ変換すると `self.when(:flag_clicked) do ~ end` のように `Sprite#when` メソッドにマッピングされる。
12+
イベントカテゴリの `フラグが押されたとき``[スペース▼]キーが押されたとき` などの各種イベントに対応したブロック(以下、イベントブロック)は、`self.when(:flag_clicked) do ~ end` のように Ruby では `Sprite#when` メソッドにマッピングされる。
1313

1414
```ruby
15+
# フラグが押されたとき
1516
self.when(:flag_clicked) do
1617
end
1718

19+
# [スペース▼]キーが押されたとき
1820
self.when(:key_pressed, "space") do
1921
end
2022

23+
# [音量▼] > (10) のとき
2124
self.when(:greater_than, "loudness", 10) do
2225
end
2326
```
2427

25-
イベントブロックは多用されるため、これが不自然なものであれば、スモウルビーを通じてRubyの文法を学習するときに問題となる。
28+
`self.when` には次の課題がある。
29+
30+
- Ruby では、publicなメソッドの呼び出しは通常は `self.` を省略するが、`when` は予約語であるため、常に `self.` を記述する必要がある
31+
- Ruby では、予約語をメソッド名に使うことはできるが、それを推奨するといった説明はどこにもない
32+
33+
イベントブロックは多用されるため、これが不自然なものであれば、スモウルビーを通じてRubyの文法を学習するときに問題となることを懸念している。
2634

2735
そこで、イベントブロックから Ruby の命令へのマッピングとして `self.when` ではない別の選択肢を検討する。
2836

2937
## 判断基準や制限
3038

31-
* Rubyの文法を学べること
39+
* Rubyの文法を自然に学べること
3240
* Rubyの初学者に受け入れられるように入門書で扱うRubyの文法や仕組みを使うこと
3341
* 現状の「予約語 when を上書きする」というのは中級者以上を想定したものだと認識している
3442
* ブロックとRubyの相互変換処理の実装が簡単であること

0 commit comments

Comments
 (0)