読者です 読者をやめる 読者になる 読者になる

元フリーエンジニアライフ

Ruby on Rails とか MovableType とかAWSやってるフリーランスウェブエンジニアの記録でした。現在は法人成りしてIT社長。

CGI + Sinatra + jpmobile

手軽にやるときはただのCGIスクリプトとして作りたい。

テンプレート処理など面倒はSinatraにまかせつつ、jpmobileの各種フィルタ・ビュー振り分け、絵文字変換などを利用したい。(昔 rack-ketai というgemを書いたが、jpmobileがrack対応した時点で役割を終えました。)

Gemfile

source 'https://rubygems.org'
gem "sinatra", "~> 1.4.3"
gem "jpmobile", "~> 4.0.0"

app.cgi

#!/usr/local/rbenv/versions/2.0.0-p247/bin/ruby 

require 'rubygems'
require 'bundler'
Bundler.require

require 'jpmobile/sinatra'
require 'jpmobile/rack'

class MyApp < Jpmobile::Sinatra::Base
  use Jpmobile::Rack::MobileCarrier
  use Jpmobile::Rack::ParamsFilter
  use Jpmobile::Rack::Filter

  get '/' do
    erb :index
  end
end

set :run, false
set :environment, :cgi
Rack::Handler::CGI.run MyApp

なお、Bundlerによるgemインストールはvendor/bundleへがよいと思う。

bundle install --path vendor/bundle