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 ユーザーにインストールされちゃう