instance method to_sentence

Ruby on Rails 3.1.12

Since v3.0.20

Available in: v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

to_sentence(options = {})

Converts the array to a comma-separated sentence where the last element is joined by the connector word. Options:

  • :words_connector - The sign or word used to join the elements in arrays with two or more elements (default: “, ”)

  • :two_words_connector - The sign or word used to join the elements in arrays with two elements (default: “ and ”)

  • :last_word_connector - The sign or word used to join the last element in arrays with three or more elements (default: “, and ”)

Parameters

options opt = {}
Source
# File activesupport/lib/active_support/core_ext/array/conversions.rb, line 11
  def to_sentence(options = {})
    if defined?(I18n)
      default_words_connector     = I18n.translate(:'support.array.words_connector',     :locale => options[:locale])
      default_two_words_connector = I18n.translate(:'support.array.two_words_connector', :locale => options[:locale])
      default_last_word_connector = I18n.translate(:'support.array.last_word_connector', :locale => options[:locale])
    else
      default_words_connector     = ", "
      default_two_words_connector = " and "
      default_last_word_connector = ", and "
    end

    options.assert_valid_keys(:words_connector, :two_words_connector, :last_word_connector, :locale)
    options.reverse_merge! :words_connector => default_words_connector, :two_words_connector => default_two_words_connector, :last_word_connector => default_last_word_connector

    case length
      when 0
        ""
      when 1
        self[0].to_s.dup
      when 2
        "#{self[0]}#{options[:two_words_connector]}#{self[1]}"
      else
        "#{self[0...-1].join(options[:words_connector])}#{options[:last_word_connector]}#{self[-1]}"
    end
  end

Defined in activesupport/lib/active_support/core_ext/array/conversions.rb line 11 · View on GitHub · Improve this page · Find usages on GitHub

Defined in Array

Type at least 2 characters to search.

↑↓ navigate · open · esc close