Beef up your Ruby core with these useful extensions
Add this line to your application's Gemfile:
gem 'beefup'And then execute:
$ bundle
Or install it yourself as:
$ gem install beefup
And require it:
require 'beefup'"true".to_boolean
=> true
"yes".to_b
=> true
"no".to_b
=> false
"false".to_b
=> false
"something that isn't falsey".to_boolean
=> trueSmarter titleising of a string which ignores certain words (E.g an, a, is, of, etc..) when they don't appear at the beginning or the end of the string.
"is this an original string? yes it is".titleise
=> "Is This an Original String? Yes It Is"
"this is a title".titleise
=> "This is a Title"1.to_boolean
=> true
0.to_b
=> false
25.to_b
=> trueEasy access to hash values via method calls of the keys.
hash = {one: 1, two: 2, three: 3, four: 4}
# Value access
hash.one
=> 1
# Key query
hash.one?
=> true
hash.five?
=> false
hash.five
=> NoMethodError
# Value assignment
hash.two = "new value"
hash.two
=> "new value"Recursively merge two hashes
hash_1 = { :a => "a", :b => "b", :c => { :c1 => "c1", :c2 => { :c2a => "c2a" } } }
hash_2 = { :a => 1, :c => { :c1 => 2, :c2 => { :c2b => "c2b" } } }
hash_1.deep_merge(hash_2)
=> { :a => 1, :b => "b", :c => { :c1 => 2, :c2 => { :c2a => "c2a", :c2b => "c2b" } } }Access a nested Hash element with a given array depicting the path
hash = { :a => {:b => {:c => { :d => "Value" } } } }
array = [:a, :b, :c, :d]
hash.access_by_array(array)
=> "Value"- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request
