GAE/JRuby/Sinatra でサービスを作ってみるテスト (1)

自分用メモ。Sinatra 1.0 になって少し手順が変わり、日本語のブログ記事 (2009 年当時のものが多い) が役に立たなくなっているようなので。

開発環境のセットアップ

Ubuntu 10.04 を使う。まずパッケージマネージャで以下をインストール。

sun-java6-bin sun-java6-jre sun-java6-jdk

次に rvm で Ruby 1.8.7 をインストール。

$ rvm use 1.8.7 --default

以下は rvm 管理下の Ruby 1.8.7 環境内に構築する。gem で google-appengine をインストール。*1

$ gem install google-appengine
Successfully installed rack-1.2.1
Successfully installed jruby-rack-1.0.3
Successfully installed jruby-jars-1.5.5
Successfully installed appengine-rack-0.0.11
Successfully installed appengine-apis-0.0.21
Successfully installed appengine-sdk-1.3.8
Successfully installed bundler08-0.8.5
Successfully installed rubyzip-0.9.4
Successfully installed appengine-tools-0.0.16
Successfully installed google-appengine-0.0.18
10 gems installed

アプリを作って動かす

1. アプリの雛形を生成する。例として「toybox」という名前にする。

$ appcfg.rb generate_app toybox
$ cd toybox

2. ソースを書く。

# toybox.rb
require 'sinatra/base'
class Toybox::MyApp < Sinatra::Base
  get '/' do
    'Hello my toybox!'
  end
end

3. config.ru を書き換える。

require 'toybox'
run Toybox::MyApp

4. Gemfile を書き換える。

# List gems to bundle here:
gem 'appengine-rack', '0.0.11.pre'
gem 'sinatra'

5. WEB-INF/app.yaml を書き換える。

application: (GAEに登録したアプリID)
version: 0-0-1
runtime: jruby

6. ローカルで動かす。

$ dev_appserver.rb .

7. GAE で動かす。

$ appcfg.rb update .

http://(アプリID).appspot.com/ にアクセスする。https://appengine.google.com/ で統計情報が見れる。

Gem を追加する

1. Gemfile に書き足す。

# List gems to bundle here:
gem 'sinatra-reloader'

2. ソースに組み込む。

require 'sinatra/reloader'

3. 必要に応じてローカルにもインストールする。

$ gem install sinatra-reloader

参考文献

このへんに随時追加していく。

*1:gem コマンドには sudo を付けない。付けると root ユーザーにインストールされちゃう