Правильная настройка регистрации для Sinatra + DataMapper - PullRequest
4 голосов
/ 24 января 2012

Интересно, как правильно настроить блоки конфигурирования в Синатре?То, что я хочу, это:

  • При работе не показывать исключения и ошибки
  • При разработке регистрировать запросы в БД
  • При тестированиииспользовать в памяти SQLite db.

Я установил это следующим образом:

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?Это правильный подход?Кроме того, я не смог найти правильный порядок выполнения конфигурационных блоков в Синатре.

Ответы [ 2 ]

0 голосов
/ 26 января 2013
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
0 голосов
/ 24 января 2012

Вам не нужна производственная конфигурация, так как это уже настройка по умолчанию. В противном случае это выглядит хорошо. Если параметр верен для всех сред, поместите его в общий блок конфигурации, если он особенный для одной или двух сред, сделайте его дополнительным блоком. Смотрите Sinatra Readme для всех деталей.

...