Ruby stuffs

Two things worth noting:

def something(x = 0)
  ...
end

doesn’t ensure that x is set to a value of zero, because the method could be called with nil [something(nil)] so to ensure a default value of zero even in the face a call with nil

def something(x = 0)
  x ||= 0
  ...
end

would do the trick.

The second is that when adding text and an object’s property

x = 'some string'
y = x + something.description

that if something.description is nil, the addition will fail, but if you interpolate ala

x = 'some string'
y = x + "#{something.description}"

something.description evaluates to empty string and therefore won’t fail.

Two subtle regressions our tests caught today when refactoring, but were not easy to see in the code.
Onward!

Leave a comment