Je suis nouveau à ruby, l'apprentissage de Sinatra. Bien que créer un site Sinatra en demandant 'sinatra'
et configurer les routes directement sous soit assez facile et assez bien documenté, créer une application en demandant 'sinatra/base'
et écrire une classe qui hérite de 'Sinatra::Base
', tout en étant relativement facile, est très mal documenté (peut-être parce que c'est une caractéristique assez récente de Sinatra).Passer des options à rackup via une application Sinatra
Et c'est exactement ce que je fais. Je n'ai pas trop de problèmes sur la partie Sinatra, mais j'ai un peu de mal sur la partie rackup/thin/server. Apparemment, il existe deux façons de déployer l'application: en utilisant Sinatra elle-même (en utilisant la méthode run!
) et en utilisant un fichier rackup (typiquement config.ru
). Utiliser la méthode run!
de Sinatra est extrêmement intuitive et fonctionne comme un charme, mais apparemment, cela ne fonctionne pas si je veux déployer mon application sur heroku. En fait, presque toutes les applications Sinatra que j'ai rencontrées sur GitHub utilisent un fichier config.ru
. L'utilisation d'un fichier rackup peut être tout aussi intuitive, mais je n'arrive pas à comprendre comment passer des options de l'application Sinatra au serveur (ir: le port). J'ai essayé de fusionner les options pour les options par défaut de rackup de tableau:
MyApp::App.default_options.merge!(
:run => false,
:env => :production,
:port => 4567
)
run MyApp::App
en ajoutant des options directement à l'application:
MyApp::App.set :port, 4567
MyApp::App.set :run, false
MyApp::App.set :env, :production
run MyApp::App
en définissant des options à partir de la classe d'application:
module MyApp
class App < Sinatra::Base
set :port, 4567
set :run, false
set :env, :production
# ...
# config.ru
require 'app'
run MyApp::App
Tous les méthodes ci-dessus ont échoué, soit en affichant des messages d'erreur, soit en ne prenant aucune des options en considération. Donc, y a-t-il un moyen de passer des options à rackup/thin/the sever via une application Sinatra lors de l'utilisation d'un fichier rackup? Ou les options dans les questions doivent être passées directement à rackup/thin/le serveur via les options de la ligne de commande?
En référence au problème, voici la petite application Sinatra Je construis: https://github.com/AzizLight/Wiki/
Merci beaucoup :) –