我想知道在Sinatra中以DRY方式设置配置块的正确方法是什么。我想要的是:
我将其设置如下:
configure :production do
set :show_exceptions, false
set :raise_errors, false
end
configure :development do
DataMapper::Logger.new($stdout, :debug)
end
configure :test do
DataMapper.setup(:default, "sqlite::memory:")
end
但是基础configuration
阻止了什么?这是一种正确的方法吗?另外,我无法找到Sinatra中配置块的正确执行顺序。
答案 0 :(得分:0)
您不需要生产配置,因为这已经是默认设置。否则看起来不错。如果所有环境的设置都为真,则将其置于常规配置块中,如果某个环境特殊,则将其设置为额外块。有关所有细节,请参阅Sinatra自述文件。
答案 1 :(得分:0)
class App < Sinatra::Base
configure :development do
enable :logging, :dump_errors, :raise_errors
disable :show_exceptions
DataMapper::Logger.new(STDOUT, :debug, '[DataMapper] ')
DataMapper::Model.raise_on_save_failure = true
end
configure :test do
enable :dump_errors, :raise_errors
disable :run, :logging, :show_exceptions
end
## Log to file
# FileUtils.mkdir_p 'log' unless File.exists?('log')
# log_file = File.new('log/development.log', 'a')
# $stdout.reopen(log_file)
# $stderr.reopen(log_file)
# $stderr.sync = true
# $stdout.sync = true