我使用meskyanichi的backup gem。總的來說,它可以滿足我的需求,但我需要有多個備份(例如,每小時,每天,每週)。配置大多相同,但有一些差異,所以我需要有多個配置文件。我無法找到一種理智的方式來管理配置的常見部分(即不重複常見部分)。每個備份都需要有一個單獨的配置文件(例如config/backup/hourly.rb,config/backup/daily.rb等),這些配置文件使用了很多塊結構,並且從我所知道的情況來看, 。一個典型的配置文件看起來是這樣的:Ruby備份寶石 - 共享配置?
Backup::Model.new(:my_backup, 'My Backup') do
database MySQL do |db|
db.name = "my_database"
db.username = "foo"
db.password = "bar"
# etc
end
# similar for other config options
end
則備份將被執行一拉bundle exec backup perform -t my_backup -c path/to/config.rb
。
我在啓用常見的配置第一贓物是確定,我可以從模塊調用的方法:
def my_db_config db
db.name = "my_database"
# etc
end
Backup::Model.new(:my_backup, 'My Backup') do
database MySQL do |db|
my_db_config db
end
#etc
end
但這種失敗的undefined method 'my_db_config' for #<Backup::Database::MySQL:0x10155adf0>
。
我的目的是要得到這個工作,然後拆分常見的配置功能合併到其他文件,我可以在我的每一個配置文件require
。我也試圖創建一個與配置代碼的文件和require
將其投入模型定義塊:
# common.rb
database MySQL do |db|
db.name = "my_database"
#etc
end
# config.rb
Backup::Model.new(:my_backup, 'My Backup') do
require "common.rb" # with the right path, etc
end
這也不起作用,以及後來的研究我發現,這只是沒有辦法的辦法是require
作品。一些更符合那個C/C++的#include
作品(即盲目地粘貼內容到什麼範圍內,可以從所謂的)可能的工作方式。
任何想法?
好主意!謝謝! – dantswain