Ruby

その rescue_from ほんとに必要ですか

だいたい必要ないと思ってますよ、という話。 Rails アプリケーションの開発において rescue_from を追加することが正しいことは少ないと思っています。 rescue_from とは実際にはアクションおよびコントローラをまたいだ begin - rescue ( try - catch )で…

jewel polisher

最近自分たちのプロジェクトが依存する gem 関連で何かが起きて対応が必要だったことが続いたのでメモっておく。 rails-html-sanitizer 0.4.0 CVE-2018-3741 対応。これは依存が多いので追うのがちょっとめんどかった。情報としては以下の issue が非常によ…

どうかくE22とjit

問題: 辞書順に数を並べる 2018.3.3 実装: github.com とりあえずナイーブに解いたやつ。鍋谷さんは「Rubyでは解けないくらいの計算量にしたつもりだった」と言っていたが案外解けている。 $ ruby -v ruby 2.6.0preview1 (2018-02-24 trunk 62554) [x86_64-d…

Ruby の ! について

はいどうも ! メソッド Ruby における ! ってご存知ですか? Ruby は演算子っぽいようなものもメソッドとして実装されているという話があったりします。 1 + 1 # Integer の + メソッドが呼ばれている class Integer # 上書き def +(other) 42 end end 1 + 1…

ランダム性は心の弱さ -- Rails においてテストデータをランダムに作ることについて

お気持ち やめよう 何がおきたか 単純化するとこんな感じのコードがあって爆死した1。 describe Foo do let(:left_foo) { Foo.new(value: 1000, bar: left_bar) } let(:left_bar) { BarMaster.all.sample } let(:right_foo) { Foo.new(value: 100, bar: righ…

オフラインリアルタイムどう書くE21 に参加して負けてきました

yhpg.doorkeeper.jp 負けました。敗因はなんだろ……。方針が定まりきらなかったのが敗因なのかなー。 プレイヤーベースで考えると打ったときに、そのタイミングでアタリを引いたのか、次のターンでアタリを引いたのかの場合分けがめんどくさそうだなーと思い…

Ruby本体読みはじめた人に届けたいドキュメント

RubyKaigi2017に参加してやる気が高まったので最近は ruby/ruby のコードを読むようになってます。 github.com しかしこれがなかなか読むのにコツがいる感じです。 RubyKaigi参加前は “Ruby under a microscope”1 を読んで「Rubyの内側面白い!!!」ってな…

最近のコーディングネタ

Ruby テスタビリティのために引数をとりたい 普通にプロパティアクセスするような気楽さでアクセスしたい この2つの気持ちがあわさってこういうことをよくしている class Foo attr_reader :baz, :qux def bar @bar ||= build_bar(baz, qux) end def build_ba…

mrubyだと32個以上の必須引数をとれない

www.amazon.co.jp 別に普段mruby使ってるわけでもないんですが『言語のしくみ』を読んでたら気になったので検証。 本の記載 タイプ3 Ax(25ビット) op(7ビット) 命令タイプ3はオペランド雨を全部1つにして25ビットのオペランド(Ax)として取り扱います。タイプ…

『オブジェクト指向設計実践ガイド』 実践編

はじめに この記事は『オブジェクト指向設計実践ガイド』の内容をもとにテストコード書いてたらよくわかんなくなったので助けてくれ、という内容です。だれか助けてください。コメントとかRe:記事とかのリアクションあると嬉しいです! 本の内容の抜粋 詳細…

RubyでEnumerableを条件Xを満たすものと満たさないものに排他的に分けたいんだけど

どうするのがいいんでしょうか。 メモリとかパフォーマンスとかそういうのはあんまり気にしない前提です。 以下のサンプルコードでは対象のEnumerableは変数 arr に代入されているものとし、条件Xを満たすかどうかのメソッドは foo?(x) という名前であるとし…