Path::Pattern is instantiated internally, so make the contructor require a strexp object
no more is_a checks on instantiation
Merge branch 'mapper'

* mapper: (34 commits)
  no more is_a checks on instantiation
  Path::Pattern is instantiated internally, so make the contructor require a strexp object
  Strexp#names is only used in a test, so rm
  pass the parsed path from mapper to the Strexp
  add an alternate constructor to Strexp that takes a string
  ask the strexp for the ast
  remove dead code
  disconnect path from the instance
  reuse the ast we already made
  use a parser to extract the group parts from the path
  pass the parsed parameters through the methods so we don't reparse or require caching code
  "controllers" should be a valid path name
  controllers with slash names are also not supported, so we can reuse the message
  only validate controllers
  golf down a bit
  only error handling between controller and action is the same
  add a test for controllers without colons
  move nil check to a method that yields to a block if the value is not nil
  translate action / controller to the desired object
  only one nil check on the action variable
  ...
no reason to make a Mapper object if the path is blank
Mapping never actually uses @set, so rm
[ci skip] Document Rails' shifted semver.
Merge pull request #15417 from JuanitoFatas/doc/semver-of-rails

[ci skip] Document Rails' shifted semver.
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, `PostgreSQL::Name` to hold schema qualified names.
pg, `reset_pk_sequence!` respects schemas. Closes #14719.
`bin/setup` script to bootstrap applications.
Merge pull request #15189 from senny/bin/setup

`bin/setup` script to bootstrap applications.
:scissors: removed deprecated `Numeric#ago` and friends

Replacements:

   5.ago   => 5.seconds.ago
   5.until => 5.seconds.until
   5.since => 5.seconds.since
   5.from_now => 5.seconds.from_now

The removed tests does not affect coverage – we have equivalent test cases in
the tests for `AS::Duration`.

See #12389 for the history and rationale behind this.
Merge pull request #11896 from nkondratyev/fix_pg_columns_for_distinct

Fixed #columns_for_distinct of postgresql adapter

Conflicts:
	activerecord/CHANGELOG.md
pg, `default_sequence_name` respects schema. Closes #7516.
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