何でも屋エンジニアのブログ

ソフトウェア関連技術、コミュニティ、日々の雑貨

ActiveModel::Access について調べたメモ

Rails のコードリーディング、久しぶりにしてみようと思いどこから読もうか眺めていたらたまたま見たことないモジュールが見つかったので読んだ。

ActiveRecord::Base#sliceActiveRecord::Base#values_at を ActiveModel に移植したもの。non-Active Record なモデルで利用したかったからという理由。

github.com

テストを回して挙動を確認した

irb(#<AccessTest:0x00007f095f9d5bb0>):008> @point
=> #<AccessTest::Point:0x00007f095f504398 @vector=[123, 456, 789]>
irb(#<AccessTest:0x00007f095f9d5bb0>):009> @point.x
=> 123
irb(#<AccessTest:0x00007f095f9d5bb0>):010> @point.y
=> 456
irb(#<AccessTest:0x00007f095f9d5bb0>):011> @point.z
=> 789
irb(#<AccessTest:0x00007f095f9d5bb0>):012> @point.slice(:x, :y, :z)
=> {"x"=>123, "y"=>456, "z"=>789}
irb(#<AccessTest:0x00007f095f9d5bb0>):013>