2011-01-27 12 views
40

Ben :development çevre için sadece çalıştırılacak (config/initializers/ olarak) benim başlatıcıları birinde kodunu gibi değil, ama :test veya :production ederim. Bunu yapmanın en iyi yolu nedir?Raylar: Ortam-içi başlatıcılar?

config/environments/test.rb içine yapıştırmak kirli görünüyor ve ben tüm başlatıcı dosyasını bir if Rails.env == 'development' do ... end deyimine sarmayı sevmiyorum. Bunu yapmak için kanonik bir yolu var mı?

(Arka plan: yani şimdi testi (ve üretim) modunda bu konuda şoklar, benim Gemfile ait :development gruba Barista mücevher taşımak için çalışıyorum, test yükü sürelerini hızlandırmak için, ancak Barista.configureconfig/initializers/barista_config.rb çağırır.)

cevap

40

Sadece iki seçeneğinizin yapılandırma kodunu config/environments/development.rb içine koyduğundan veya başlatıcı kodunuzu if bloğunuzla sardığından eminim. Yine de, ikinci seçeneğinizi yaparak sıkılaştırabilirsiniz.

Barista.configure do |c| 
    c.env = :development 
end 

Bu yalnızca dev modunda js'ye coffeescript yeniden derlemek ve testlerinizi hızlandırmak olmalıdır:

+7

Başka bir benzer model, Foo gem yalnızca geliştirme veya test modunda yüklenirse, 'tanımlıysa? (Foo)' işlevini kullanmaktır. [Konacha] (https://github.com/jfirebaugh/konacha) bunu önerir. –

+0

Konacha yaklaşımını seviyorum - Gemfile'da daha önce belirtilenleri tekrarlamaktan kaçının. – ZoFreX

1

Barista bunun için bir yapılandırma ayarı vardır. Bunun iyi bir fikir olup olmadığını bilmiyorum

https://github.com/Sutto/barista

+0

Barista.env, Barista'nın ortamını ayarlar ve varsayılan değer Rails.env'dir. Bunu ": geliştirme" ye zorlamak, uygulamanızın Rails.env'den bağımsız olarak geliştirme modunda olduğu gibi davranmasını sağlayacaktır. Çevreyi bu şekilde ayarlamamalısın. –

3

rake barista:brew 

kodunuzu kontrol etmeden önce, ama farklı bir fikir.

Çalıştırmak emin olun.

Bir config/initializers/development dizin oluşturabilir (veya config/environments/development/initializers), bu dizinde senin barista_config.rb koymak ve sonra config/environments/development.rb gelen bu dizinde herhangi bir şey sayılabilir.

Bunun iyi bir fikir olup olmadığını bilmiyorum, ancak en azından üçüncü bir seçenek olup olmadığını soruyorsunuz ... bu sorunun sorusunu sorduktan üç buçuk yıl sonra hala devam ediyorsanız.