web-dev-qa-db-fra.com

Qu'est-ce que ce fichier config.ru et à quoi sert-il?

Quel est ce fichier config.ru, et à quoi ça sert dans les projets Sinatra? Dans ma lanière du projet, un tel code est écrit:

require './app'
run Sinatra::Application
11
Stas Chehovskih

config.ru (les .ru signifie "rackup") est un fichier de configuration de Rack. Rack fournit une interface minimale entre les serveurs Web qui prennent en charge Ruby et Ruby frameworks. C'est comme une Ruby implémentation d'une - CGI qui offre un protocole standard pour que les serveurs Web exécutent des programmes.

run du rack signifie ici pour les requêtes au serveur, faites Sinatra::Application le contexte d'exécution à partir duquel la DSL de Sinatra pourrait être utilisée. Toutes les méthodes DSL sur le main sont ensuite déléguées à cette classe.

Donc, essentiellement dans ce config.ru fichier ce qui se passe est la suivante:

Tout d'abord, vous avez besoin de votre code app qui utilise le DSL de Sinatra, puis exécutez le framework Sinatra ... donc dans le contexte de Sinatra::Application si ton app.rb contenait quelque chose comme

get '/' do
  'Hello world!'
end

Le bloc get signifierait quelque chose pour Rack, dans ce cas (lorsque quelqu'un essaie d'accéder à [GET] l'URL de la maison,

renvoyer "Bonjour tout le monde!"

Que votre application vous montrera dans votre navigateur.

8
Emmanuel

config.ru est un fichier de configuration par défaut pour une commande rackup avec une liste d'instructions pour Rack .

Rack est une interface et une architecture qui fournit un langage spécifique au domaine (DSL) et connecte une application à un monde Web. En deux mots, il permet de créer des applications Web et de travailler avec les demandes, les réponses (et de nombreuses autres technologies liées au Web) de la manière la plus pratique.

Sinatra ainsi que Rails sont des frameworks web, ils utilisent donc tous les deux Rack:

http://recipes.sinatrarb.com/p/middleware

https://guides.rubyonrails.org/Rails_on_rack.html

2
Axalix

Rack fournit une interface minimale entre les serveurs Web prenant en charge les frameworks Ruby et Ruby.

L'interface suppose simplement que vous avez un objet qui répond à une méthode d'appel (comme un proc) et renvoie un tableau avec:

  • Le code de réponse HTTP
  • Un hachage d'en-têtes
  • L'organe de réponse, qui doit répondre à chaque

Vous pouvez exécuter un serveur Rack de base avec la commande rackup qui recherchera un config.ru fichier dans le répertoire courant.

Vous pouvez créer un serveur hello world minimal avec:

# config.ru
run Proc.new { |env| ['200', {'Content-Type' => 'text/html'}, ['Hello World']] }
# run this with the `rackup` command

Comme Sinatra, tout comme Rails s'appuie sur Rack, il utilise rackup en interne pour interfacer entre le serveur et le framework. config.ru est donc le point d'entrée de tout programme basé sur Rack.

Qu'est-ce que c'est bootstrap l'application et passe le Sinatra::Application classe vers le rack qui a une méthode de classe call.

Sinatra::Application est ensuite chargé de prendre la demande entrante (l'env) et de la transmettre aux routes fournies par votre application, puis de transmettre le code de réponse, les en-têtes et le corps de la réponse.

0
max