Actions
Feature #13563
closedImplement Hash#choice method.
Status:
Closed
Assignee:
-
Target version:
-
Description
Hi,
I propose Hash#choice method.
It pick up key and value pairs in Hash like a below code.
{ :a => 1, 2 => "2", "c" => true }.choice(:a, 2) # => { :a => 1, 2 => "2" }
{ :a => 1, 2 => "2", "c" => true }.choice("c", 10000) # => { "c" => true, 10000 => nil }
This method is useful when Hash have many keys, but programer need few key's.
For instance, it pick up personal data in ActiveRecord model's data, and migrate to new device.
feature_phone_user = User.find(params[:src_user_id])
profile = feature_phone_user.attributes.choice(*%i[nickname email sex birthday prefecture])
smart_phone_user = User.new
smart_phone_user.attributes = profile
In other case, it pick up latest log from http request parameter.
condition = params.to_h.choice("user_id", "service_id")
latest_payment_log = PaymentLog.find_by(condition).last
If this method exist, I guess that many cases change to comfortable just a little.
Please consider about it.
And I write it.
https://github.com/baban/ruby/commit/4014ebe2ae261881669bef8369eb08aaecef2034
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0