deep_rejectが欲しくてrefinementsで実装しようとした話
再帰的に条件判定を行うrejectが欲しくなりました。
こういう動きです。
1 2 3 4 5 6 7 8 |
|
かなり便利そうです。
refinmetsで実装してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
ですがこれを
1 2 |
|
と読み込んで使おうとしたところ残念ながら配列の中にハッシュが紛れ込んでいるようなケースだとArrayExのdeep_rejectからHashExのdeep_rejectが参照できず思った通りの結果になりませんでした。
refinementsはかなり厳密なスコープで動くようです。
まぁあったら有意義なメソッドだしいいかということで結局オープンクラスで実装しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|