enumerable_hashify
Defines Enumerable#hashify, which creates a hash with the enumerable’s items as keys and with a given constant value or with block-computed values:
[1,2,3,4].hashify --> {1=>true, 2=>true, 3=>true, 4=>true}
[1,2,3,4].hashify("a") --> {1=>"a", 2=>"a", 3=>"a", 4=>"a"}
[1,2,3,4].hashify{|n| "a" * n} --> {1=>"a", 2=>"aa", 3=>"aaa", 4=>"aaaa"}
Tested on
MRI 1.8.7, MRI 1.9.2
Naming and Historical Note
I’ve been using this in my projects for years with the name Enumerable#to_h, and figured it was time to make a gem since nobody else seems to have.
But there’s been a bunch of discussion online as to what the proper semantics that Enumerable#to_h should have, without universal agreement. I recently found a proposal from back in 2001 that suggested this same functionality with the name Enumerable#hashify which seemed pretty good to me. I don’t know why that proposal wasn’t adopted as part of ruby. But here it is as a gem.
Note on Patches/Pull Requests
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.
Copyright
Released under the MIT License. See LICENSE for details.