Where is Ruby's string literal juxtaposition feature officially documented?

ghz 1years ago ⋅ 2498 views

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: