はじめに

外部ライブラリはうまく扱えるようになりましたか?
ライブラリをもう一段回進めたものとして、「フレームワーク」があります。
フレームワークはライブラリの集合体のようなものですが、設計の方向性が決められており、ツールなどが含まれている場合もあります。
フレームワークをうまく活用できれば、開発コストを大きく下げられ、開発期間を大幅に短縮することができます。
この記事では、Ruby初心者の方向けに、Rubyのフレームワークについてお伝えしていきます。
ウェブ開発ではフレームワークが多用されますので、ぜひ習得しておきましょう。

フレームワークってどんなもの?

フレームワークとは、アプリケーションの骨組みを提供するものです。
ライブラリに、明確な開発の方向性をもたせたものともいえます。
定型的な処理はフレームワークが行ってくれるため、特に定型的な処理が多いウェブ開発では開発コストを大きく削減できます。
まずは、Rubyにおける代表的なフレームワークをみていきましょう。

Rubyの代表的なフレームワーク

Ruby on Rails

Ruby on Rails(ルビーオンレイルズ)は、Rubyの人気の火付け役となったウェブアプリケーションフレームワークです。
MVC(Model-View-Controller)アーキテクチャに則った、テストしやすいウェブアプリを開発できます。
ツールによるテンプレートの生成にも対応しており、面倒な定型処理を削減してくれます。
非常に人気の高いフレームワークなので、Rubyを学ぶならRuby on Railsの学習は必須でしょう。

Sinatra

Sinatra(シナトラ)は、Ruby on Railsに比べてシンプルなフレームワークです。
単純なものを開発する場合は、フルスタック(全部入り)なRuby on Railsは巨大すぎることもあります。
そんなときは、軽量なSinatraが適しているでしょう。コード量も少なく、シンプルに開発を進められます。
開発する対象によって、Ruby on Railsと使い分けるとよいでしょう。

Padrino

Padrino(パドリーノ)は、Sinatraをベースに作成されたフレームワークです。
Ruby on RailsとSinatraの中間的存在であり、Ruby on Railsほどの機能は必要ないが、Sinatraでは力不足だ、といった状況に適しています。
機能を見比べてみて、どのフレームワークが最適か判断しましょう。

Sinatraを使ってみよう

それでは、一番シンプルなSinatraを使ってみましょう。
まずは、Sinatraのインストールからです。
前回の記事でも取り上げましたが、外部ライブラリ(フレームワークも含む)はRubyGemsからインストールできます。
次のコマンドを入力して、インストールしましょう。

gem install sinatra

うまくインストールできましたか?さっそくSinatraを使って、簡単なウェブページを作成してみましょう。
まずは、中心となるルーティングコードを次のように記述します。
 

app.rb:
require 'sinatra'
get "/" do
  erb :index
end

一行目でSinatra本体を読み込み、その後「get関数」を使って、ルートを定義しています。
ルートとは、簡単にいえばURLのことです。
このコードでは、”/”にアクセスされたときに返すコンテンツとして、”indexファイル”を指定しています。
次に、この”indexファイル”を作成してみましょう。
”app.rb”が存在するディレクトリに「viewsディレクトリ」を作成し、その中に”index.erb”ファイルを作成して下さい。
内容は次のとおりです。

index.erb:
<!DOCTYPE html>
<html>
<head>
  <title>テストページ</title>
</head>
<body>
  <p>
  	現在時刻は、<%= Time.now %>です。
  </p>
</body>
</html>

erbファイルでは、HTMLとRubyコードの両方を記述することができ、PHPファイルに近いことができます。
erbファイル中にRubyコードを書く際は、「<%=[code]%>または<%[code]%>」と記述します。
これは、Ruby on Railsでも使われている記法です。
ファイルが作成できたら、”app.rb”を実行してみましょう。
すると、コンソールにURLが表示されますので、ブラウザに入力して下さい(例:http://localhost:4567/)。
先ほど作成した”index.erb”が表示されれば成功です。

まとめ

フレームワークについて理解できましたか?
フレームワークは、アプリケーションの枠組みを提供してくれ、定型的な処理を担ってくれます。
特に、ウェブアプリ開発では積極的に活用するべきでしょう。
おすすめはRuby on Railsです。
この連載でも、次回以降からRuby on Railsについて詳しく取り上げていきます。