Ruby heresy
Someone on the ruby-talk mailing list asked why you can't add strings and numbers without conversion as in Perl and PHP. Now, behaving like PHP is rarely a good thing, but Ruby can be made to do it in this case:
class String
def coerce(lhs)
[lhs, self.to_i]
end
alias_method :old_plus, :+
def +(rhs)
if rhs.is_a?(Numeric)
return rhs + self
else
return old_plus(rhs)
end
end
end
You can now add a string to a number:
1 + '1' #=> 2
Or a number to a string:
'2' + 2 #=> 4
Or, indeed, a string to a string as usual:
'foo' + 'bar' #=> "foobar"
I'm sorry.
Update
I have expanded it to handle '1' + '2' and
'4' - '3'. Here’s the file.