gotcha: ruby += operator

Looks like there’s no += operators. My guess is compiler is probably converting a += b expressions into a = a + b, or more verbosely a.send(:=, a.send(:+, b)).

Here’s some quick experimentation:

irb> 0.send("+=", 1)
# => NoMethodError: undefined method `+=' for 0:Fixnum
irb> 0 += 1
# => SyntaxError: (irb):1: syntax error, unexpected tOP_ASGN, expecting $end
 
1
Kudos
 
1
Kudos

Now read this

ruby defined? operator

Run this on ruby 1.9 require 'delegate' class Bam < SimpleDelegator def bam defined? Bam end def rails defined? Rails end end module Rails; end bam = Bam.new(Object.new) # I'm expecting "constant" to be returned but it's something... Continue →