using ruby 2.0.0p481 (2014-05-08) [x64-mingw32] on Win7
In a directory (d:\download\ruby to be exact) I have two files - calling.rb and called.rb
calling.rb
require_relative 'called' print_path() called.rb
def print_path() puts "File.expand_path(File.dirname(__FILE__)) is #{File.expand_path(File.dirname(__FILE__))}" puts "File.expand_path(File.dirname(File.dirname(__FILE__))) is #{File.expand_path(File.dirname(File.dirname(__FILE__)))}" puts File.expand_path(File.dirname(__FILE__)) end print_path() Could someone explain why when executing directly called.rb gives me
d:\download\ruby>ruby called.rb File.expand_path(File.dirname(__FILE__)) is d:/download/ruby File.expand_path(File.dirname(File.dirname(__FILE__))) is d:/download/ruby d:/download/ruby different result as when using the same code from calling.rb?
d:\download\ruby>ruby calling.rb File.expand_path(File.dirname(__FILE__)) is d:/download/ruby File.expand_path(File.dirname(File.dirname(__FILE__))) is d:/download d:/download/ruby File.expand_path(File.dirname(__FILE__)) is d:/download/ruby File.expand_path(File.dirname(File.dirname(__FILE__))) is d:/download d:/download/ruby d:\download\ruby>