シナトラとは
Sinatraは、Rubyで書かれた小さいながらも興味深いDSL(ドメイン固有言語)フレームワークです。 Ruby on Railsとは異なり、典型的なMVCパターン(モデル-ビュー-コントローラー)には従いません。 Sinatraは、「プログラマが最小限の労力でRubyで書かれたWebアプリケーションをすばやく作成できるように作成されました。
Sinatraを使用するには、インストールする必要があります。 RubyGemsで次のコマンドを使用してこれを行うことができます。
gem install sinatra
Shotgunというgemも必要です。 サーバーを手動で再起動しないようにするために必要です。 Shotgunがそれを行います。 インストールしましょう:
gemインストールショットガン
さて、それだけです! 仕事に必要なものはすべて揃っています。 創造性の時が来ました。 さあ始めましょう...
こんにちはシナトラ!
そして、それ自体を歓迎する簡単なアプリケーションを作成します。 フランクが彼の墓に転がらないように心から願っています。 したがって、ここにアプリケーションがあります。
require "sinatra" get "/" do "Hello, Sinatra!" end
サーバーを起動するためだけに残ります。 これを行うには、次のコマンドを入力します。
ruby -rubygems path_to_file \ app.rb
これでブラウザを開くことができます。 アドレスバーで、 localhostアドレス4567をダイヤルする必要があります。 出来上がり!

おめでとうございます! Sinatraを使用して最初のWebアプリケーションを作成しました。
デブリーフィング
これは最も単純な例であるという事実にもかかわらず、私たちのコードが何をするのかを理解することは害になりません。
最初から、Webアプリケーションを開発するときはRubyバージョン1.9を使用していることに注意したかったのです。 バージョン1.8を使用している場合は、コードにもう1行追加する必要があります。 ここにあります:
require "rubygems"
先に進みます。 アプリケーションに、アドレスバーのユーザーがサイトのアドレスを操作すると、このページにアクセスする、つまり ホーム、フランクを歓迎します。 たとえば、ユーザーがアドレスバーで/ aboutを指定すると、次のエラーが表示されます。

Not Foundエラーを処理しましょう。 これは次の方法で実行できます。
not_found do status 404 "Something wrong! Try to type URL correctly or call to UFO." end
次に、アドレスバーに「 localhost:4567 / about 」と入力して、ユーザーにページが表示され、ユーザーに何か問題があったことを伝えます。
Hello%username%
私たちがフランクに会ったことを思い出す時が来ましたが、彼はしませんでした。 もちろん、神は禁じられています。 しかし、私たちはブラウザに私たちを迎えさせることができます。 これは、 nameパラメーターを使用して実行できます。 その処理は次のようになります。
get "/hello/:name" do "Hello, #{params[:name]}." end
localhost:4567 / hello / your_nameにダイヤルするだけで、アドレスへの挨拶が表示されます。 ここで、例えば:

私はあなたがどこにいるの
この式を使用して、たとえば、ユーザーに入力するアドレスに関係なく、ユーザーに1ページだけを表示する必要がある場合に状況を特徴付けることができます。 これは、スラッシュの後にアスタリスクを指定することにより行われます。 このように:
get "/*" do "It's the main page of this site you can see right now!" end
どこに行っても、同じページが表示されます。 ところで、ここで彼女は:




URIで指定されたパラメーターの値は、 splat属性を使用して取得できます。 このように:
get "/*" do "I don't know what is the #{params[:splat]}. It's what you typed." end
出来上がり! アドレスバーに入力せずに、入力されたURIを確認します。


おわりに
今日は以上です。 トピックのサイズにもかかわらず、シナトラのルーティングスキームを整理しました。 彼がこのフレームワークをすぐに知り、これまでにないスピードでWebアプリケーションを作成できるようにしたいという願望を彼に起こしてくれることを願っています。 これは単なる出発点であり、それ以上のものではありません。
次に行く場所
シナトラの紹介 。
シナトラの公式サイト 。
シナトラと歌う 。