回答編集履歴

1

2022/02/06 18:01

投稿

melian
melian

スコア19865

test CHANGED
@@ -1,4 +1,4 @@
1
- 例えば、irb で実行すれば `NoMethodError` は発生しません(`Kernel` モジュール内で実行されるため)。
1
+ 例えば、irb で `--context-mode=3`(binding in function on TOPLEVEL_BINDING)を付けて実行すれば `NoMethodError` は発生しません(スクリプトが `Kernel` モジュール内で実行(eval)されるため)。
2
2
  ```bash
3
3
  $ cat foo.rb
4
4
  def foo
@@ -7,7 +7,9 @@
7
7
 
8
8
  p 1.foo
9
9
 
10
+ $ irb --version
11
+ irb 1.4.1 (2021-12-25)
10
- $ irb --noecho --noverbose < foo.rb
12
+ $ irb --context-mode=3 --noecho --noverbose < foo.rb
11
13
  3
12
14
  ```
13
15