String.join() ??

I've seen some example code that uses what appears to be a string
object with a join method, for example:

(from "rubyisms in rails")
<code>
def category_links(article)
  "Posted in " + article.categories.collect { |c|
    link_to c.name,
            { :controller=>"articles", :action => "category",
              :id => c.permalink },
              :rel => "tag"
            }.join(", ")
end
</code>

But I don't see api docs in rails or ruby for a join method like this
(obviously there are other join methods).

It _appears_ that this might be a conditional concat (but perhaps
not).

anyone familiar with this?

Joe at CodeGear wrote:

(from "rubyisms in rails")

Tell such authors not to squander Ruby's incredibly expressive power
by writing run-on statements. They wouldn't do that in prose
(right??;).

<code>
def category_links(article)
  "Posted in " + article.categories.collect { |c|
    link_to c.name,
            { :controller=>"articles", :action => "category",
              :id => c.permalink },
              :rel => "tag"
            }.join(", ")
end
</code>

That is this:

article.categories.collect{ blah blah blah }.join(', ')

Array#collect returns an Array, and join() makes it into a string. That's all.

It's an instance method of Array:

irb(main):007:0> Array.instance_methods.grep /join/
=> ["join"]