Refactor ActionDispatch::Http::Cache::Response#cache_control_headers.
Merge pull request #7198 from cfcosta/refactor-cache_control_headers

Refactor ActionDispatch::Http::Cache::Response#cache_control_headers
Revert "DRY class_attribute code"

class_attribute is a building block and using define_method
can be much slower for such basic method definitions.

This reverts commit d59208d7032e2be855a89ad8d4685cc08dd7cdb3.
Remove the deprecation of update_column.

update_column was suggested as replacement of update_attribute at the
last release of 3-2-stable, so deprecating it now will confuse the
users.
fix typo in metal/live [ci skip]
Merge pull request #7203 from frodsan/typo_live

fix typo in metal/live [ci skip]
update coding conventions in metal/live
fix nodoc in metal/live
Merge pull request #7205 from frodsan/fix_nodoc_live

Fix nodoc in metal/live [ci skip]
Make ActiveSupport::Inflector locale aware and multilingual

The Inflector is currently not very supportive of internationalized
websites. If a user wants to singularize and/or pluralize words based on
any locale other than English, they must define each case in locale
files. Rather than create large locale files with mappings between
singular and plural words, why not allow the Inflector to accept a
locale?

This patch makes ActiveSupport::Inflector locale aware and uses `:en`` unless
otherwise specified. Users will still be provided a list of English (:en)
inflections, but they may additionally define inflection rules for other
locales. Each list is kept separately and permanently. There is no reason to
limit users to one list of inflections:

    ActiveSupport::Inflector.inflections(:es) do |inflect|
      inflect.plural(/$/, 's')
      inflect.plural(/([^aeéiou])$/i, '\1es')
      inflect.plural(/([aeiou]s)$/i, '\1')
      inflect.plural(/z$/i, 'ces')
      inflect.plural(/á([sn])$/i, 'a\1es')
      inflect.plural(/é([sn])$/i, 'e\1es')
      inflect.plural(/í([sn])$/i, 'i\1es')
      inflect.plural(/ó([sn])$/i, 'o\1es')
      inflect.plural(/ú([sn])$/i, 'u\1es')

      inflect.singular(/s$/, '')
      inflect.singular(/es$/, '')

      inflect.irregular('el', 'los')
    end

    'ley'.pluralize(:es)   # => "leyes"
    'ley'.pluralize(:en)   # => "leys"
    'avión'.pluralize(:es) # => "aviones"
    'avión'.pluralize(:en) # => "avións"

A multilingual Inflector should be of use to anybody that is tasked with
internationalizing their Rails application.

Signed-off-by: David Celis <david@davidcelis.com>
AR::Relation#order: make new order prepend old one

    User.order("name asc").order("created_at desc")
    # SELECT * FROM users ORDER BY created_at desc, name asc

This also affects order defined in `default_scope` or any kind of associations.
Merge pull request #7176 from bogdan/reverse_order

AR::Relation#order: make new order prepend old one.
Merge pull request #7197 from davidcelis/i18n_inflector

Make ActiveSupport::Inflector locale aware and multilingual
Update activesupport/CHANGELOG.md
fix typo in collection proxy
Merge pull request #7212 from accessd/small-typo-fix

small fix typo in collection proxy
html_escape should escape single quotes

https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet#RULE_.231_-_HTML_Escape_Before_Inserting_Untrusted_Data_into_HTML_Element_Content
Closes #7215
Merge pull request #7204 from frodsan/update_conventions

Follow code conventions in metal/live
Updated scaffold_controller generator docs #7146

It was just a copy of the controller generator documentation which was
misleading.  It doesn't accept arguments for views.  This seems more
descriptive as well.

Respect 80 char limit. #7147

Made a nicer paragraph #7147
Merge pull request #7147 from pferdefleisch/scaffold_controller_docs

Updated scaffold_controller generator docs #7146