« 仕様書を読むか、キャプチャするか | Main | RubyでCGIを書く際の最低限のテクニック(2) »

2011.09.26

RubyでCGIを書く際の最低限のテクニック(1)

最近、RubyでCGIを共作する機会があって、かなり慌てながら思い出している。

そもそも大したものを作ったことがないので、仮に全部を思い出したとしても大したレベルではないが、次にRubyに触る頃には忘れてそうなので、作り始めるときに思い出すと作業がスムーズになりそうなことをピックアップして書いておく。

まずサーバに.htaccessを書くところから

趣味といえど数人で作るプログラムなので、当面はメンバーだけが見れる状態にしておく。まあ、Rubyに限った話ではないか。

とりあえずrequire "CGI"とruby -d index.cgi

CGIモジュールを使うと、エラー出力がブラウザで見えない時がある。で、コマンドラインからスクリプトを動かすとoffline mode: enter name=value pairs on standard inputと出て、手打ちで変数を渡さないといけないのが面倒だ。起動時にデバッグオプションを付けると$DEBUGがtrueに設定されるので

unless $DEBUG then
    require "CGI"
    cgi = CGI.new
    q = cgi["q"]
else
    q = "test"
end

とか書いて、CGIモジュールを呼び出さずに値を設定できる。

同様に、デバッグ時だけ表示させるためにif修飾子を使ったり

print XX if $DEBUG

逆にデバッグ時に表示させなくてもよいものはunless修飾子で削っておくと、色々と捗る。

print <<HEADER unless $DEBUG
XXXX
HEADER

設定を外部ファイル(YAML or JSON)に入れておく

これも最初からやっておくべき。APIキーとかパスワードをソースに書いた状態でgit commitしちゃうと、仮に後で直せるとしても履歴として残るので気持ち悪い。

標準でYAMLが使えるが、僕はWebOS GoodiesさんのJSONパーサを使ってる。

http://webos-goodies.jp/archives/51019710.html

Formは後でjQueryで値を入れる

今回は特にフレームワークを使ってないので、printの中にHTMLタグをチマチマ書いてる。中でもHTMLフォームは、INBOXに表示させる値とか、SELECT要素でOPTIONをSELECTEDにするのとか、HTMLと変数が入り乱れ、printが最強に汚くなる。

jQueryの.val()を覚えてから、最初にHTMLで書いておいて、DBを引いてからjQueryで値を指定することにしてる。仮に処理がコケても、HTMLフォームが崩れないのは精神的によろしい。

http://api.jquery.com/val/

最初からCSSで化粧しておくと気分がいい

僕はWebの見た目は無頓着なタイプなのだが、今回は見た目も良くしておきたかったので、Twitterが公開している BootstrapというCSSのツールキットを使ってみた。特にフォームが少し大人びた感じがして、生のHTMLの詰まった感じに比べて全然いい。

http://twitter.github.com/bootstrap/

--

もうちょっと貯まったら第二弾を書いてみようかと。

Ruby逆引きハンドブックRuby逆引きハンドブック
るびきち

by G-Tools

|

« 仕様書を読むか、キャプチャするか | Main | RubyでCGIを書く際の最低限のテクニック(2) »

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/4282/52826963

Listed below are links to weblogs that reference RubyでCGIを書く際の最低限のテクニック(1):

« 仕様書を読むか、キャプチャするか | Main | RubyでCGIを書く際の最低限のテクニック(2) »