merb

論理削除(ParanoidDateTime)がされているデータを参照する

Model の with_deleted メソッドの block 内で参照を行う。 target_model = TargetModel.with_deleted { TargetModel.get(2) } 複数の Model をまとめて、 with_deleted なモードで扱いたいんだけど、そういうのはないみたい。

さらに spec の実行を速くする

MySQL のデータを RAM Disk 上に置いて 3 倍の速度を達成したわけだが、さらなる高速化を考えた。 遅いところ 経験上、fixture を何度も読込んでいると遅いことがわかっている。fixture を before(:each) ではなく、before(:all) で読み込むようにすれば、回…

spec の中で Controller の object を無理矢理生成する

Mock を活用してテストをする場合、 spec の中で Controller の object を無理矢理生成して、直接 method を呼んでテストを行いたい場合がある。でも Controller#new は、一つの引数を要求している。このような時は、Controller#new に Merb::Test::RequestH…

Hash の key を symbol でも文字列でもアクセス可能にする

Hash の key はなるべく symbol でアクセスするのが cool だと思う。しかしながら、JSON.parse とかで生成された Hash は、key が文字列で生成されているもんで、使い勝手が悪い。 extlib は Mash という Hash もどきの class を使ってこれを実現している。 …