ActiveSupportによる既存Rubyクラスの拡張は人間をダメにするんじゃないかと思いますが、知っていると周りのプログラマに差をつけられるテクニックが満載だと思います。今回はHashの拡張メソッドの話。 よくあるコード some_hash = { key_a: "some content", key_b: "some content", key_c: "some content" } # :key_aと:key_bを取り出したい some_hash.select{|k, _| %i(key_a key_b).include? k} #=> {key_a: ..., key_b: ...} # :key_cを除外したい some_hash.reject{|k, _| k == :key_c} #=> {key_a: ..., key_b: ...} some_hash = { key_
![ActiveSupportのHash拡張であるslice, exceptがびっくりするぐらい便利 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/72393c97a9b2e56e6352dc014d2e243a6c777fc6/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9QWN0aXZlU3VwcG9ydCVFMyU4MSVBRUhhc2glRTYlOEIlQTElRTUlQkMlQjUlRTMlODElQTclRTMlODElODIlRTMlODIlOEJzbGljZSUyQyUyMGV4Y2VwdCVFMyU4MSU4QyVFMyU4MSVCMyVFMyU4MSVBMyVFMyU4MSU4RiVFMyU4MiU4QSVFMyU4MSU5OSVFMyU4MiU4QiVFMyU4MSU5MCVFMyU4MiU4OSVFMyU4MSU4NCVFNCVCRSVCRiVFNSU4OCVBOSZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9YTJhNTc4NDMyNjAxYzVmOGE3MzEzOTFhYTJmODViM2M%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBtYWhfbGFiJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1lODk4NTA2MzNlNjBhMjc3NTFhZGEzM2U0ZDY4MmQ5MQ%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D68c05f4c230f31e1f845112517ae82cb)