タケユー・ウェブ日報

Ruby on Rails や Flutter といったWeb・モバイルアプリ技術を武器にお客様のビジネス立ち上げを支援する、タケユー・ウェブ株式会社の技術ブログです。

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