Ruby でトップレベルで定義したローカル変数は他のファイルからは参照されない
てっきりトップレベルで定義した変数はグローバル変数扱いで他のファイルからでも参照できるのかと思ったんですが、そういうことはないんですねー。
[a.rb]
def a_func :a_func end @a = 42 a = 10
[b.rb]
require_relative "./a" # メソッドやインスタンス変数であれば参照することができる p a_func # => :a_func p @a # べつのファイルのローカル変数は p a # => Error: `<main>': undefined local variable or method `a' for main:Object (NameError)
こんな感じでトップレベルで定義した変数はそのファイルのローカル変数みたいな扱いになります。