このファイルとはconfig.ru
、そしてそれはシナトラプロジェクトでは何のためですか?プロジェクトの私のストラップには、そのようなコードが書かれています。
require './app'
run Sinatra::Application
config.ru
(.ru
は「ラックアップ」の略)は、ラック構成ファイルです。ラックは、RubyおよびRubyフレームワークをサポートするWebサーバー間の最小限のインターフェースを提供します。これは、Ruby [〜#〜] cgi [〜#〜] Webサーバーがプログラムを実行するための標準プロトコルを提供します。
ここでのラックのrun
は、サーバーへのリクエストの場合、Sinatra::Application
をSinatraのDSLを使用できる実行コンテキストにすることを意味します。 main
のすべてのDSLメソッドは、このクラスに委任されます。
したがって、基本的にこのconfig.ru
ファイルでは、次のようになります。
最初に、SinatraのDSLを使用するapp
コードが必要です。次に、Sinatraフレームワークを実行します... Sinatra::Application
のコンテキストで、app.rb
に次のようなものが含まれている場合
get '/' do
'Hello world!'
end
get
ブロックは、ラックにとって何かを意味します。この場合(誰かがホームURLに[GET]にアクセスしようとすると、
「Hello world!」を送り返す
アプリケーションがブラウザーに表示するもの。
config.ru
は Rack の指示のリストを含む rackup コマンドのデフォルト設定ファイルです。
ラックは、ドメイン固有言語(DSL)を提供し、アプリケーションをWebの世界に接続するインターフェースおよびアーキテクチャーです。つまり、Webアプリケーションを構築し、リクエスト、レスポンス(およびその他の多くのWeb関連テクノロジー)を最も便利な方法で操作できます。
SinatraおよびRailsはWebフレームワークであるため、どちらもRackを使用します。
ラックは、RubyおよびRubyフレームワークをサポートします。
インターフェースは、(procのような)呼び出しメソッドに応答し、以下の配列を返すオブジェクトがあることを前提としています。
現在のディレクトリでconfig.ru
ファイルを検索するrackup
コマンドを使用して、基本的なRackサーバーを実行できます。
次のようにして、最小限のhello worldサーバーを作成できます。
# config.ru
run Proc.new { |env| ['200', {'Content-Type' => 'text/html'}, ['Hello World']] }
# run this with the `rackup` command
Sinatraは、RailsがRackに基づいて構築されているため、内部でrackup
を使用してサーバーとフレームワーク間のインターフェースを確立しています。config.ru
は、Rackベースのプログラムへのエントリポイントです。 。
それは何ですかbootstrapアプリケーションを実行し、Sinatra::Application
クラスをcall
クラスメソッドを持つラックに渡します。
次に、Sinatra::Application
は、着信要求(env)を受け取り、それをアプリケーションが提供するルートに渡し、応答コード、ヘッダー、および応答本文を返します。