Question
I recently realized that if you juxtapose a sequence of Ruby string literals
(e.g. 'a' "b" 'c'
), it's equivalent to the concatenation of those string
literals. However, I can't find this language feature documented anywhere.
I've searched using the terms "juxtaposition" and "concatenation", but only
found reference to it in a couple of StackOverflow responses. Can anyone point
me to a definitive reference?
Answer
UPDATE
This is now officially documented in the RDoc that ships with Ruby.
Changes will propagate to [RubyDoc](http://www.ruby- doc.org/core-2.0/doc/syntax/literals_rdoc.html#label-Strings) the next time they build the documentation.
The added documentation:
Adjacent string literals are automatically concatenated by the interpreter:
"con" "cat" "en" "at" "ion" #=> "concatenation"
"This string contains "\
"no newlines." #=> "This string contains no newlines."
Any combination of adjacent single-quote, double-quote, percent strings will
be concatenated as long as a percent-string is not last.
%q{a} 'b' "c" #=> "abc"
"a" 'b' %q{c} #=> NameError: uninitialized constant q
ORIGINAL
Right now, this isn't anywhere in the official ruby documentation, but I think it should be. As pointed out in a comment, the logical place for the docs to go would be: <http://www.ruby- doc.org/core-2.0/doc/syntax/literals_rdoc.html#label-Strings>
I've opened a pull request on ruby/ruby with the documentation added.
If this pull request is merged, it will automatically update <http://www.ruby- doc.org>. I'll update this post if/when that happens. ^_^
The only other mentions of this I've found online are:
- The Ruby Programming Language, page 47 (mentioned in another answer)
- Ruby Forum Post circa 2008
- Programming Ruby