You may notice that there are 2 method calls in the source code - +and chr. I can show it with equivalent code:
65.send(:+, rand(10)).send(:chr) # is the equal to following line:
65.+(rand(10)).chr
This trick creates a chain of methods that allows you to skip parentheses. With parentheses, 65.+(rand(10)).chryou can write as follows:
(65 + rand(10)).chr
chr rand(10), 65. TypeError:
65+(rand(25)).chr
TypeError: String can't be coerced into Fixnum