システムまたはVPSにSinatraをインストールして開始する方法
序章
Sinatraは、Rubyで記述されたシンプルで軽量なWebフレームワークです。 この記事は、基本的なRubyを理解していて、システムまたはクラウドサーバーにRubyとRubyGemsがインストールされていることを前提としています。 Rubyバージョンマネージャー(RVM)を使用することをお勧めします。
Railsではありません。 それは何ですか?
Sinatraは、どちらもWebフレームワークであるという点でRubyonRailsに似ています。 Railsとはかなり異なり、はるかに軽量(オーバーヘッドが少ない)であり、Webアプリをよりきめ細かく制御できます。 さらに、組み込みのデータベース機能やページレンダリングはありません。これらはすべて、手動で行われます。
では、なぜシナトラなのか?
これは速い。 それは簡単です。 効率的です。 ただし、それに伴い、作業が増え、エラーの余地が増えます。
Sinatraは、小規模なWebアプリケーション、またはWebサイトのリストにあるような肥大化を必要としないアプリケーションに最適です。 テキストを上下逆さまにするだけのような、単一目的のアプリがたくさんあります。 Sinatraを使用して単純なJekyllフロントエンドを作成することもできます。
RubyとRubyGemsのインストール
RubyとRubyGemsをインストールする最良の方法は、Rubyバージョンマネージャー(RVM)を使用することです。 RVMを使用すると、複数のRubieをインストールして、独自のgemセット(gemsets)を使用したり、Rubyごとに異なるgemsetをインストールしたりすることができます。 最新のRVMおよびRuby2.0.0を入手するには、次のコマンドを実行します。
\curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0
Rubyバージョンには任意のバージョン番号を付けることができます。 これにより、コマンドを実行している1人のユーザーのRVMがインストールされます。 システム全体にインストールするには、bashの前にsudoを追加します。
\curl -L https://get.rvm.io | sudo bash -s stable --ruby=2.0.0
システムまたはクラウドサーバーでバイナリRubyが利用可能な場合(ほとんどの場合)、ダウンロードしてインストールされます。 そうでない場合は、ソースからRubyをビルドします。 これには時間がかかる場合があります。
インストールの最後に、ログアウトしてから再度ログインします。 次に、コマンドを実行するように求められます
source ~/.rvm/scripts/rvm
—これにより、RVMが現在の端末にロードされます。 すべてがうまくいけば、開いている他のターミナルに対してそれを再度行う必要はありません。 ただし、そのコマンドを実行するように継続的に求められる場合は、次のように、コマンドをスタートアップファイルに追加します。
.bashrc
また
.zshrc
宝石のインストール
他のgemをインストールするのと同じように、Sinatraは次のようにインストールされます。
gem install sinatra
以上です。 Sinatraをインストールしました。
はじめに:Hello World
最初のWebアプリケーションは、シンプルで理解しやすいものでなければなりません。 アプリケーションはRubyクラスにラップされています。 これが2つのファイルの単純なWebアプリケーションです。
# app.rb require 'sinatra' class HelloWorldApp < Sinatra::Base get '/' do "Hello, world!" end end
# config.ru require './app' run HelloWorldApp
2つのファイルapp.rbとconfig.ruにコンテンツを書き込んだ後(Emacsまたはお好みのテキストエディターを使用)、同じフォルダーから実行してアプリケーションを実行できます(たとえば、 、 / home / user / code / my_sinatra_app ):
rackup
これにより、アプリケーションにサービスを提供するWEBrickが起動します。 WEBRickがサービスを提供しているIPとポートを教えてくれることに気付くでしょう。 メモを取る。 http:// IP:portからアプリケーションにアクセスできます。
HelloWorldアプリケーションを理解する
Sinatraでは、各 get (または post 、 put など)ブロックは、各ルートと、アプリが特定のHTTPリクエストにどのように応答するかを定義します。 この例では、ユーザーがアプリケーションのルートディレクトリ、つまり/を要求したときに何が起こるかを定義しました。
もっと複雑なことを試してみましょう。
パラメータを取るようにHelloWorldAppを設定しましょう!
# app.rb require 'sinatra' class HelloWorldApp < Sinatra::Base get '/' do "Hello, world!" end get '/:name' do "Hello, #{params[:name]}!" end end
URLパラメータは次のように指定されます::param 、Rubyコードのparamsハッシュに格納されます。
このコードは、2つのルートを指定します。1つはネイキッド / 用で、もう1つは /:name用です。 ただし、このルーティングを、nameパラメーターの存在をチェックする1つのルートに単純化することもできます。
# app.rb require 'sinatra' class HelloWorldApp < Sinatra::Base get '/?:name?' do "Hello, #{params[:name] ? params[:name] : 'world'}!" end end
これはもっと複雑です。 「オプション」のパラメーターは、疑問符で囲むことで表すことができます。 次に、三項演算子を使用して、 params [:name] の存在を確認します。では、ユーザーに挨拶を指定させたい場合はどうすればよいでしょうか。 見てみましょう… それをどのように構成しますか?
# app.rb require 'sinatra' class HelloWorldApp < Sinatra::Base get '/:greeting/?:name?' do "#{params[:greeting]}, #{params[:name] ? params[:name] : 'world'}!" end end
これで、 http:// yoursever:port / Aloha / Timothy に移動するだけで、ティモシー氏は非常に特別な気分になります。
さらに詳しい情報
驚異的なSinatra独自のGettingStartedガイドをお勧めします。 それは非常に役立ちます。