最近Rubyを勉強しなおしています。
別のファイルを読み込むときに少しハマったので解決方法を記していこうと思います。
別ファイルの読み込み方
rubyでファイルを読み込むときは
require_relative "ファイル名"
とします。
変数のスコープについて気を付けること
ただし、ファイルをまたいだローカル変数は使うことができません。
例えば、
main.rb
ary = (1..10).to_a
と変数を定義して別ファイルで使うとき
second.rb
require_relative "./main.rb"
puts ary
としても呼び出すことができません。
main.rbでは代わりにグローバル変数で定義します。
main.rb
#グローバル変数を定義
$ary = (1..10).to_a
こうすると
second.rb
puts $ary
としてmain.rbで定義した変数を使うことができます。
ただし、むやみにグローバル変数を使うのは保守上よくないと思うのでファイルを上手に分割しないといけないのかなと思います。
おそらくですが次のように書いたほうがいいのではないのでしょうか?
main.rb
def ary
a = (1..10).to_a
return a
end
としてから
second.rb
require_ralative "main.rb"
puts ary
このように変数ではなくメソッド定義にして変数を返すようにしておけば、あたかも変数をファイルをまたいで使えるようになるのかなと思います。