Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Extends ActiveRecord by adding pluck_to_hash
method that returns array of hashes instead of array of arrays. Useful when plucking multiple columns for rendering json or you need to access individual fields in your view for example.
Supports pluck_to_struct
since version 0.3.0. pluck_to_struct
returns an array of struct
s.
Add this line to your application's Gemfile:
gem 'pluck_to_hash'
And then execute:
$ bundle
Or install it yourself as:
$ gem install pluck_to_hash
Usage is similar to ActiveRecord.pluck
, for example
Post.limit(2).pluck_to_hash(:id, :title)
#
# [{:id=>213, :title=>"foo"}, {:id=>214, :title=>"bar"}]
#
Post.limit(2).pluck_to_hash(:id)
#
# [{:id=>213}, {:id=>214}]
#
Or use the shorter alias pluck_h
Post.limit(2).pluck_h(:id)
#
# [{:id=>213}, {:id=>214}]
#
Supports select
alias
User.pluck_to_hash(:id, 'created_at::date as my_date', 'created_at::time as my_time')
#
# [{:id=>23, :my_date=>Fri, 11 Jul 2014, :my_time=>2000-01-01 07:54:36 UTC},
# {:id=>2, :my_date=>Tue, 01 Jul 2014, :my_time=>2000-01-01 14:36:15 UTC}]
#
Accepts block
parameter
User.pluck_to_hash(:id, :title) do |user_hash|
...
end
Allows specifying the type of hash. Defaults to HashWithIndifferentAccess
User.pluck_to_hash(:id, :title, hash_type: CustomHash) do |custom_hash|
...
end
pluck_to_struct
posts = Post.limit(2).pluck_to_struct(:id, :title)
#
# [#<struct id=1, title="foo">, #<struct id=2, title="bar">]
#
posts.first.id
# 1
posts.first.title
# "foo"
or use the shorter alias pluck_s
posts = Post.limit(2).pluck_s(:id, :title)
#
# [#<struct id=1, title="foo">, #<struct id=2, title="bar">]
#
Supports block
parameter as well
Post.limit(2).pluck_to_struct(:id, :title) do |post_struct|
puts post_struct.title
end
Allows specifying the type of struct. Defaults to standard Struct.
Post.limit(2).pluck_to_struct(:id, :title, struct_type: OtherStructType) do |post_struct|
puts post_struct.title
end
Use version 0.1.4
that removes ActiveSupport dependency. HashWithIndifferentAccess
is not used in that case.
ActiveRecord.select
or ActiveRecord.as_json
?Here are results of "benchmark" tests performed on MacBook Air. Each method did 10 runs, rejected the 2 highest and 2 lowest times and average the remaining 6. Ran these tests on about 40,000 records. We notice that pluck_to_hash
is almost 4x faster than select
and about 8x faster than as_json
. As with all the "benchmarks", you should take these results with a pinch of salt!
# Node.pluck_h(:id, :title)
# Node.select(:id, :title).to_a
# Node.select(:id, :title).as_json
user system total real
pluck_to_hash 0.145000 0.005000 0.150000 ( 0.164836)
select 0.566667 0.010000 0.576667 ( 0.590911)
as_json 1.196667 0.010000 1.206667 ( 1.222286)
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)MIT License
Brought to you by: Cube Root Software © 2016
FAQs
Unknown package
We found that pluck_to_hash demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.