Ответ 1
Учитывая следующую структуру проекта:
your_gem/
lib/
your_gem.rb
Вот как бы я это сделал:
# your_gem.rb
module YourGem
def self.root
File.expand_path '../..', __FILE__
end
end
Ruby 2.0 представил метод Kernel#__dir__
; он позволяет значительно сократить решение:
# your_gem.rb
module YourGem
def self.root
File.dirname __dir__
end
end
Если вам нужен доступ к другим каталогам, вы можете просто построить root
:
module YourGem
def self.bin
File.join root, 'bin'
end
def self.lib
File.join root, 'lib'
end
end