Fix bug, when ':dependent => :destroy' option violates foreign key constraints, issue #12380
Moved explanation of `--mountable` option up

The example code uses `--mountable`. In previous version this was followed by an explanation of the `--full` option, which doesn't make sense. Later on in the text this is better explained. I moved this explanation up without repeating too much.
skip migration check if adapter doesn't support it
Swallow bundler exceptions when running tests

Let's avoid useless output when testing stuff related to Bundler.
:scissors:
Fix Baseclass becomes! subclass.
Remove duplicated HashWithIndifferentAccess#with_indifferent_access.
[ci skip] Fix Compiler's Github link
Speed-up TimeWithZone to String conversion

I've noticed that `String(model.created_at)` is performing poorly in comparision
with other fields. The source of the problem is a way `Kernel#String` works: it first
tries to call `to_str` (which causes `NoMethodError` in `method_missing`) and then calls `to_s`.

Performance tests:

    tz = Time.zone.now

    Benchmark.ips do |x|
      x.report { String(tz) }
    end

Without this code:

    Calculating -------------------------------------
                               572 i/100ms
    -------------------------------------------------
                            10177.7 (±18.2%) i/s -      48620 in   5.000325s

With this code:

    Calculating -------------------------------------
                              1518 i/100ms
    -------------------------------------------------
                           138984.2 (±10.1%) i/s -     677028 in   4.974897s
implement ActiveRecord::Base#pretty_print + changelog
[ci skip] add created_at and updated_at to example
document generators hidden_namespaces
Fixed `ActiveSupport::TimeWithZone#-` so precision is not unnecessarily lost

When working with objects with a nanosecond component, the `-` method may
unnecessarily cause loss of precision.

`ActiveSupport::TimeWithZone#-` should return the same result as if we were
using `Time#-`:

    Time.now.end_of_day - Time.now.beginning_of_day #=> 86399.999999999

Before:

    Time.zone.now.end_of_day.nsec #=> 999999999
    Time.zone.now.end_of_day - Time.zone.now.beginning_of_day #=> 86400.0

After:

    Time.zone.now.end_of_day - Time.zone.now.beginning_of_day
    #=> 86399.999999999
pg, support default values for enum types. Closes #7814.

This is an intermediate solution. It is related to the refactoring @sgrif
is making and will change in the future.
refactor, introduce `Type#type_cast_for_schema` to cast for schema.rb

This removes the case statement in `SchemaDumper` and gives every `Type`
the possibility to control the SchemaDumper default value output.

/cc @sgrif
Update Minitest references in Testing Guide

The Guide references `test/unit`, which has been replaced by `Minitest` in
all versions of Ruby supported by Rails. The following updates were
performed:

* The superclass of `ActiveSupport::TestCase` is no longer
  `MiniTest::Unit::TestCase`, but `Minitest::Test` [1].

* The preferred spelling is `Minitest`, not `MiniTest` [2].

* For a method to be a test in Minitest, its name must start with `test_`,
  not only `test` [3].

* Explanations about `test/unit` in Ruby 1.8 were removed in favor of more
  up-to-date information on `Minitest`.

[1]: https://github.com/rails/rails/blob/6c2b569660c9216595d02ce6412e3bdcc7293317/activesupport/lib/active_support/test_case.rb#L18
[2]: https://github.com/seattlerb/minitest/blob/d5d43cef9a3fd4a0eea972dde125ed5ba1ddb821/lib/minitest.rb#L9
[3]: https://github.com/seattlerb/minitest/blob/d5d43cef9a3fd4a0eea972dde125ed5ba1ddb821/lib/minitest/test.rb#L62
bin/setup uses `bundle check || bundle install` to improve performance.
Merge pull request #15425 from leafac/fix-testing-docs

Update Minitest references in Testing Guide
Change the version schema to reflect how deprecations are handled

[ci skip]

We only introduce new deprecations at Minor releases.
Merge pull request #15313 from andreychernih/time-with-zone-string-conversion-speed-up

Speed-up TimeWithZone to String conversion