Ruby Freaks Lounge

第11回 自由なWebフレームワーク,Ramaze

この記事を読むのに必要な時間:およそ 2 分

ロガー

標準出力やファイルにログを記録する他,syslogに出力したり,Growlで通知させたりと,さまざまなロギング方法をサポートしています。またそれらのうち複数の手段を同時に使うこともできます。

Ramazeでログに文字列を出力するには,例えば以下のように記述します。

リスト2 ログ出力の例

Ramaze::Log.info "created new entry"

処理系

RamazeはさまざまなRuby処理系に対応しています。具体的には,Ruby 1.8系,1.9系,JRubyRubiniusでの動作が確認されています。

プロジェクトの始め方

先ほどのHello Worldアプリケーションのように1ファイルから開発を始めることができる一方,Railsのようにアプリケーションのひな形を生成して,それを基盤に開発を行うやり方もサポートされています。

例えばプロジェクト名がhelloならば,以下のコマンドを実行することでhelloというディレクトリが作成され,その中のstart.rbを実行することでサーバが起動します。

リスト3 アプリケーションのひな形の作成

ramaze create hello

その他の特徴

Ramazeのその他の特徴を紹介します。

豊富なヘルパー

Ramazeにはヘルパーと呼ばれる,コントローラに便利なメソッドを追加する機能が備わっています。OpenID等による認証を行うものや,簡単なローカライズを行うものなど,さまざまなヘルパーが用意されています。またlib/ramaze/contrib以下にもアプリケーションの作成を助けるコードが含まれています。

ヘルパーを読み込むには,コントローラ内で「helper :httpdigest」などといった指定を行います。

綺麗なソースコード

Ramazeのソースコードは,基本的に1クラスが1ファイルに,1つのモジュールによる名前空間が1ディレクトリに対応しているため,クラス名からそれが定義されているファイルを容易に探すことができます。

またRamazeはバージョン2009.04から,⁠ramaze」「innate」という2つのライブラリに分割されました。InnateはRamazeの機能のうち,Webフレームワークとして最低限必要な機能のみを抜き出したライブラリで,現在はRamazeのコアとして使用されています。

豊富なサンプルコード

この他,標準添付のサンプルコードが充実していることもRamazeの特徴です。基本機能のサンプルがbasic/に,テンプレートエンジンの使用例がtemplates/に,ヘルパーの使用例がhelpers/に,実際のアプリケーション例がapp/に,その他のサンプルコードがmisc/にまとめられています。

まとめ

今回はシンプルで自由度の高いフレームワークRamazeのいろいろな機能について紹介しました。

次回は,Ramazeを使って実際にアプリケーションを作ってみる予定です。お楽しみに!

著者プロフィール

原悠(はらゆたか)

NaClこと「ネットワーク応用通信研究所」勤務。さまざまなプログラミング言語に興味を持つ。最近触っている言語はRuby,Scheme,JavaScript,Englishあたり。

URL:http://route477.net/

著書