Tag Archives: Ruby

€ £ $ ¥ ₽

Thanks to Stack Overflow’s annual survey, we now have this gem (pun intended) of data:

Screen Shot 2015-06-11 at 9.38.02 AMScreen Shot 2015-06-11 at 9.39.20 AM

Is this as absurd as it appears? Let’s take a closer look. Continue reading

Advertisements
Tagged , , , , , ,

_

That nondescript title is not a placeholder – this post is really about the underscore. It arose out of one of those rewarding moments where you suddenly feel that there must be a way to do something better, and a search quickly reveals that, indeed, there is.

Ever evaluate a complex – particularly multi-line – expression in irb or Rails console and immediately after hitting the Return key realize that you’ve neglected to assign the return value to a variable? Suffer no more:

2.2.0 :001 > [[1,2], [3,4]].map do |pair|
2.2.0 :002 >   pair[0]*2 + pair[1]*3
2.2.0 :003 > end
=> [8, 18]
2.2.0 :004 > _
=> [8, 18]
2.2.0 :005 > _.map { |c| c*2 }
=> [16, 36]

See that little line on lines 4 & 5?! Saved by the humble underscore.

Tagged

Hash[]

Calling the [] method on Hash converts a one-dimensional array with an even number of elements into a hash, with odd/even elements alternating as keys/values. Very cool 🙂


$ irb

2.2.0 :001 > Hash['key1', 'value1', 'key2', 5]

 => {"key1"=>"value1", "key2"=>5}

2.2.0 :002 > Hash['key1', 'value1', 'key2']

ArgumentError: odd number of arguments for Hash

Tagged ,

.try

This Ruby method returns nil rather than raising an exception when called on a non-existent object.

$ rails console

2.1.0 :001 > nil.admin?
NoMethodError: undefined method 'admin?' for nil:NilClass
... stack trace ...

2.1.0 :002 > nil.try(:admin)
 => nil

Continue reading

Tagged ,