Мне нужен полный путь драгоценных камней изнутри приложения рельсов - PullRequest
10 голосов
/ 16 марта 2012

Я запускаю приложение rails 3.1, в котором используется движок awesome_engine.В Awesome_engine есть некоторые ресурсы, которые мне нужны, но пути загрузки компаса не включают путь ресурсов двигателей.Насколько я понимаю, он должен быть там, но это не так.

Мне нужно добавить его, поэтому я изменил свой config / compass.rb, добавив в него настройку компаса Additional_import_paths .Проблема в том, что именно так я получаю путь к нужному камню:

begin
  gem_root = $LOAD_PATH.find{|i| i.include?('/awesome_engine/')}.gsub(/awesome_engine\/.*/, 'awesome_engine/app/assets/stylesheets/scss')
  additional_import_paths = [gem_root]
rescue
end

Это работает, но должен быть более простой / лучший / более чистый способ получить полный путь к драгоценному камню.Кто-нибудь?

1 Ответ

26 голосов
/ 17 марта 2012

Gem.loaded_specs - это то, что я хотел:

ruby-1.9.2-p290 :001 > Gem.loaded_specs['awesome_engine'].full_gem_path
 => "/Users/younker/dev/engines/awesome_engine" 

ruby-1.9.2-p290 :002 > Gem.loaded_specs['rails'].full_gem_path
 => "/Users/younker/.rvm/gems/ruby-1.9.2-p290@foobar/gems/rails-3.1.3"
...