2012-01-24 3 views
4

Je me demande quelle est la bonne façon de configurer les blocs de configuration dans Sinatra de manière DRY. Ce que je veux:Configuration correcte de la journalisation pour Sinatra + DataMapper

  • Lorsque la production, ne présentent pas des exceptions et des erreurs
  • Lorsque dans le développement, connectez-vous les requêtes à DB
  • Lors des tests, utilisez en mémoire SQLite db.

J'ai mis ce comme ce qui suit:

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 

Mais quoi mettre dans le bloc de base configuration? Est-ce une bonne approche? Aussi, je n'ai pas pu trouver quel est le bon ordre d'exécution des blocs de configuration dans Sinatra.

Répondre

0

Vous n'avez pas besoin de votre configuration de production car il s'agit déjà du paramètre par défaut. Sinon, ce look va bien. Si un paramètre est vrai pour tous les environnements, placez-le dans le bloc de configuration générale, s'il est spécial pour un ou deux environnements, faites-en un bloc supplémentaire. Voir le Readme de Sinatra pour tous les détails.

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 
Questions connexes