Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 782
Backo Avatar asked Aug 21 '11 23:08

Backo


2 Answers

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.

like image 159
coreyward Avatar answered Oct 18 '22 21:10

coreyward


@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.

like image 44
mycargus Avatar answered Oct 18 '22 19:10

mycargus