1. ホーム
  2. ruby-on-rails

[解決済み] Rubyの「$」文字はどういう意味ですか?

2022-02-27 14:12:01

質問

しばらくRuby on Railsで遊んでいて、実際のソースに目を通してみることにしました。GitHubからレポを取得して、いろいろと見て回ることにしました。それが何をするのか、何を参照しているのかよくわからないコードに出くわしました。

actionmailer/test/abstract_unit.rb でこんなコードを見かけました。

root = File.expand_path('../../..', __FILE__)
 begin
 require "#{root}/vendor/gems/environment"
 rescue LoadError
 $:.unshift("#{root}/activesupport/lib")
 $:.unshift("#{root}/actionpack/lib")
end

lib = File.expand_path("#{File.dirname(__FILE__)}/../lib")
$:.unshift(lib) unless $:.include?('lib') || $:.include?(lib)

require 'rubygems'
require 'test/unit'

require 'action_mailer'
require 'action_mailer/test_case'

どなたか、$: (a.k.a. "the bling")は何を参照しているのでしょうか?

どのように解決するのですか?

$: は、外部ファイルを検索するために使用されるグローバル変数です。

から http://www.zenspider.com/Languages/Ruby/QuickRef.html#18

$: スクリプトやバイナリモジュールのloadやrequireによるロードパス。