RSpec + Sinatra + Haml + Saas アプリをHerokuにデプロイ


先日書いた、麻雀スクリプトをSinatraに乗っけてみました。
rubyで麻雀の待ちを出力 - うんたらかんたら日記
麻雀スクリプトのテストコード - うんたらかんたら日記


amachang作の↓をみて
清一色メーカー
rubyでもsinatra使えばサクッとできる(らしい)よね、
と思い立ちチャレンジしてみました。


ついでに、sinatraRSpec動かすのと、
ちゃんと使ったことの無いhaml/saasをこれを機に使ってみました。


herokuデプロイ先

麻雀聴牌チェッカー


こんなかんじ。

感想

「また、つまらぬものを...」感がありますが、個人的にはいろいろ試せて良かったです。


ほとんどデザイン入れて無いので、haml / saasの醍醐味は味わえてませんが
saasはある程度ルール決めれば、cssは結構キレイになるんじゃないかなという感じがしました。
hamlも悪くはないのですが、ドキュメント少ないのと、
私自身まだ慣れてないということもあり、書くのに少し戸惑いました(whitespaceらへん)。
正直erbでもいいかなぁと思いました。


RSpec on Sinatra の方は、
viewのテストで last_response.should match を使って正規表現でチェックをしましたが
have_tag likeなのが欲しいという感じです。
あと、ajaxのテストどうしよう、ってとこかな。
(ここはRSpecじゃないか)


Herokuへのデプロイは簡単で言うこと無しです。
ありがとうございます。


あと、POSTにはajax使ったんですが、amachangソースにもあるように、
javascriptのsetIntervalでグルグル回すってのは
やはり簡単で魅力的だなぁ。javascriptいいなぁと思いました。

var cachedValue = '';
setInterval(function() {
    if (tilesEl.value != cachedValue) {
        cachedValue = tilesEl.value;
        arrange(cachedValue);
    }
}, 50)


#あと麻雀スクリプト自体は少し雑(チートイツ考慮無しとか、同じ牌が4枚以上あっても計算してしまってるとか)
#なので気が向いたら直すかも。


参考

ウノウラボ by Zynga Japan: やってみようBDD on Sinatra
とても参考になりました。