2012-03-16 11 views
10

Ho installato un'applicazione di rails 3.1 che utilizza un motore chiamato "awesome_engine". Awesome_engine ha alcune risorse che ho bisogno di ottenere ma i percorsi di carico della bussola non includono il percorso delle risorse dei motori. La mia comprensione è che dovrebbe essere lì, ma non lo è.Ho bisogno di un percorso completo gemme dall'interno di un'app di rotaie

Ho bisogno di aggiungerlo così ho modificato il mio config/compass.rb per includere l'impostazione di configurazione della bussola additional_import_paths. Il problema è che questo è come ottenere il percorso alla gemma richiesta:

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 

Questo funziona, ma ci ha avuto modo di essere un/una migliore/modo più semplice più pulito per ottenere il percorso completo di un gioiello. Chiunque?

risposta

25

Gem.loaded_specs è quello che volevo:

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/[email protected]/gems/rails-3.1.3" 
Problemi correlati