PIYO - Tech & Life -

Ruby

rspec-parameterizedで条件だけが異なるテストコードをDRYに書く

テストのロジックは同じだけど、入力値とそれに対する結果が異なるみたいなテストをシンプルにかけるrspec-parametrizedというgemがあります。 https://github.com/tomykaira/rspec-parameterized 存在は知ってたけどしばらく使ってなかったんですが、試しに入れてみたらすごくシンプルに使えるし、パラメータ変えてテストできるようなメソッドにしようみ …

RSpecで失敗したテストだけを対象にできる--only-failuresオプション

プロジェクトの根幹ぽいところをちょっと変えたばっかりにテストの半分ぐらいがが失敗してしまって、1箇所直したら全部パスするみたいなことはあるあるなんじゃないかと思います。RSpecでは失敗したテストのみを対象に再実行できるオプションがあるので、それを使うと良いです。

Rails周りで最近知ったこと 2018/04版

String#squish ActiveSupportで定義されているらしい。 def squish dup.squish! end def squish! gsub!(/[[:space:]]+/, " ") strip! self end halt_callback_chains_on_return_false がDeprecatedになった件でプルリク見てたら書いてあってみつ …

RailsアプリをHeroku→さくらVPSに移行

Herokuのプランが変わったのでRailsアプリケーションをさくらに移行した。 ここ最近Herokuの料金体系が変わってFree Dynoは18時間までしか動かせないようになったらしい。それにともなってこんなHackをする人まで出てきているようで、Freeでとりあえず動かしたいという人たちに与える影響はそれなりにあるように思える。

markdown_section_numbering gemをアップデート

昔こんなのを作ったわけだけど、本当に少しだけ足りないなと思うところがあったのでアップデートしました。 <img src=“https://capture.heartrails.com/small?https://blog.piyo.tech/posts/2014-07-06-193000" alt=“マークダウンに見出し番号をつけるRuby Gem書いた - …

Rubyで濁点/半濁点が分離した文字を1文字に統一するには

Macのファイル名周りで発生するのでハマったことがある人もいると思うんだけど、ひらがなやカタカナの濁音や半濁音の文字を表現するのに2文字分使われていることがあったりする。 例えばFinderでぱぴぷぺぽ.txtというファイルを作ってEmacsで開いてみるとこんなふうになる。

Azure Storage QueueでBase64関係の例外

バッチ処理のためのメッセージキューとしてMicrosoftのAzure Storage Queueを使っている。C#での使い勝手は言わずもがなだし、Rubyでも最低限のSDKが提供されているのでAWSと比べて使い勝手が悪いということはない。

ActiveRecordの日付カラムでレコードを絞り込める by_star gem

久々に便利なの見つけた。有名だったりするのかな? radar/by_star by_starはモデルの絞り込みに使えるgemで、ActiveRecordとMongoidで使える。 ある期間内のレコードだけを表示したり集計を取ったりというときに使える。自分でも大したコードにはならないんだけど汎用的なものなのでこのgemを使うのが良いでしょう。