2012-07-25 21 views
9

私は、誰かのリポジトリに次のソースコードを見た:モジュール内にファイルが必要ですか?

module Twitter 
    module Bootstrap 
     module Rails 
     require 'twitter/bootstrap/rails/engine' if defined?(Rails) 
     end 
    end 
end 

require 'less-rails' 
require 'twitter/bootstrap/rails/bootstrap' if defined?(Rails) 

Source

私たちはモジュール内requireを入れると違い何を知りたいですか?

答えて

11

requireに関する限り、違いはありません。すなわち、requireは、常にファイルをグローバル名前空間にロードします。

その時点でRailsが、それは内でのモジュールを指し、そのif文は常にtrueにそこに評価されますので、それは、このケースでは、インナーrequire常に実行することに留意すべきです。

これは、コードはおそらくあまり混乱と同等であることを意味する:

module Twitter 
    module Bootstrap 
    module Rails 
    end 
    end 
end 

require 'twitter/bootstrap/rails/engine' 
require 'less-rails' 
require 'twitter/bootstrap/rails/bootstrap' if defined?(Rails) 
関連する問題