Prevent state leak.
Remove redundant code.
Move cleanup into teardown, delete obsolete code.
remove unnecessary substitution for space in ActionView::Helpers#debug
Add an option to skip installation of Turbolinks
Always update counter caches in memory when adding records

Before, calling `size` would only work if it skipped the cache, and
would return a different result from the cache, but only if:

- The association was previously loaded
- Or you called size previously
- But only if the size was 0 when you called it

This ensures that the counter is appropriately updated in memory.
Don't save through records twice

If the through record gets created in an `after_create` hook that is
defined before the association is defined (therefore after its
`after_create` hook) get saved twice. This ensures that the through
records are created only once, regardless of the order of the hooks.
Don't include inheritance column in the through_scope_attributes
Add test cases for Migration#inverse_of
Move array database type casting to the Array type

The case where we have a column object, but don't have a type cast
method involves type casting the default value when changing the schema.
We get one of the column definition structs instead. That is a case that
I'm trying to remove overall, but in the short term, we can achieve the
same behavior without needing to pass the adapter to the array type by
creating a fake type that proxies to the adapter.
Don't type cast the default on the column

If we want to have type decorators mess with the attribute, but not the
column, we need to stop type casting on the column. Where possible, we
changed the tests to test the value of `column_defaults`, which is
public API. `Column#default` is not.
Merge pull request #15727 from aditya-kapoor/add-tests-for-migration

Add test cases for Migration#inverse_of
Merge pull request #15716 from schuetzm/skip-turbolinks

Add an option to skip installation of Turbolinks
Merge pull request #15778 from sgrif/sg-pg-mutable-arrays

Move pg array database type casting to the Array type
Ensure `OID::Array#type_cast_for_database` matches PG's quoting behavior

Also takes a step towards supporting types which use a character other
than ',' for the delimiter (`box` is the only built in type for which
this is the case)
Merge pull request #15784 from sgrif/sg-delimiter

Ensure `OID::Array#type_cast_for_database` matches PG's quoting behavior
Add a generic --skip-gems options to generator

Also remove --skip-turbolinks.

This option is useful if users want to remove some gems like jbuilder,
turbolinks, coffee-rails, etc that don't have specific options on the
generator.

    rails new my_app --skip-gems turbolinks coffee-rails
:scissors:
initialize the right variable
Detect mutations of arrays and array members