Class: Array

Inherits:
Object
  • Object
show all
Defined in:
lib/joined.rb

Overview

Joins elements of array.

Author

Yegor Bugayenko ([email protected])

Copyright

Copyright © 2025 Yegor Bugayenko

License

MIT

Instance Method Summary collapse

Instance Method Details

#joined(oxford: true, words_connector: ', ', last_word_connector: ', and ') ⇒ String

Join strings into a single line, splitting them with comma and placing “AND” between the last two items.

Parameters:

  • words_connector (String) (defaults to: ', ')

    The sign or word used to join all but the last element in arrays with three or more elements.

  • last_word_connector (String) (defaults to: ', and ')

    The sign or word used to join the last element in arrays with three or more element.

  • oxford (Boolean) (defaults to: true)

    Should we place a comma before the :last_word_connector? If false, it will remove a leading comma from the :last_word_connector, however it does not add a comma if one is not already specified in the :last_word_connector.

Returns:

  • (String)

    The text generated (with items joined)



26
27
28
29
30
31
32
33
34
# File 'lib/joined.rb', line 26

def joined(oxford: true, words_connector: ', ', last_word_connector: ', and ')
  return '' if empty?
  return first if length == 1

  final_connector = (last_word_connector || '').dup
  final_connector.sub!(/^,/, '') unless oxford && length > 2

  "#{self[0...-1].join(words_connector)}#{final_connector}#{self[-1]}"
end