Backo
Backo

Reputation: 18881

How to "transform" an array in a sentence?

I am using Ruby on Rails v3.0.9 and I would like to "transform" an array of strings in a sentence including punctuation. That is, if I have an array like the following:

["element 1", "element 2", "element 3"]

I would like to get\build:

# Note: I added 'Elements are: ' at the begin, ',' between elements and '.' at
# the end.
"Elements are: element 1, element 2, element 3."

How can I do that?

Upvotes: 9

Views: 4966

Answers (2)

mycargus
mycargus

Reputation: 2618

@coreyward's answer is close, but his suggestion's output doesn't match the requested output. This will give you exactly what you want:

puts "Elements are: #{array.to_sentence(last_word_connector: ', ')}."

See the docs for more examples and options.

Upvotes: 1

coreyward
coreyward

Reputation: 80130

Rails has Array#to_sentence that will do the same as array.join(', ') and additionally add "and " before the last item.

puts "Elements are: #{["element 1", "element 2", "element 3"].to_sentence}."

The rest, as you can see, is just putting it together.

Upvotes: 9

Related Questions