2
我想要一個插件,我正在開發自動重新加載,每次我改變我的代碼,模擬通常在Rail的開發模式下發生的相同的自動重新加載。我的插件主要是一個ActiveRecord混合模塊。我已嘗試過在相關Google搜索中找到的所有建議。沒有任何工作。Rails自動重新加載插件在開發模式
在我的插件的init.rb:
require 'activesupport' unless defined? ActiveSupport
require 'activerecord' unless defined? ActiveRecord
if RAILS_ENV == 'development'
ActiveSupport::Dependencies.load_once_paths.delete lib_path
ActiveSupport::Dependencies.load_once_paths.delete File.join(lib_path, 'crowd_compass', 'publisher.rb')
ActiveSupport::Dependencies.load_paths << lib_path
ActiveSupport::Dependencies.load_paths << File.join(lib_path, 'crowd_compass', 'publisher.rb')
end
ActiveRecord::Base.send(:include, CrowdCompass::Publisher)
在軌更新日誌來看,我也注意到了特性,自動重新加載所有插件。
config.reload_plugins = true if RAILS_ENV == 'development'
這是我預料到,當我把它添加到我的conf/environment.rb中
我的插件的結構使得所有文件自動加載由命名空間=>目錄沒有工作。我這樣做是爲了避免使用「require」,因爲我認爲需要阻止我的插件被自動重載。
我一直在開發模式下通過rails控制檯完成所有工作,我不知道這是否與運行雜種(或類似web服務器)的行爲不同。
插件按預期工作,但每次我對代碼進行任何更改時都必須重新加載。有誰知道一種方式來獲取插件重新加載?
這就是我所害怕的。我甚至會很高興重新加載!但是這對我來說也不適用。相反,我每次改變插件中的內容時都必須重新啓動控制檯。如果解決了這個問題,插件開發將會更容易。謝謝您的回覆。 – 2009-10-28 01:34:36
你有沒有試過寫測試?如果你測試驅動你的插件,你不必重新加載控制檯這麼多。 – 2009-10-28 05:39:07
@BJ Clark。幾天前,我轉而試用了Rspec的插件。它的速度非常快,並且爲插件設置autospec,每次我在插件目錄中保存任何文件時都會看到我的測試運行非常好。當我試圖手動測試我的插件時,我不知道我在想什麼。 – 2009-10-30 18:02:43