reuse the ast we already made
disconnect path from the instance
remove dead code
ask the strexp for the ast
add an alternate constructor to Strexp that takes a string
pass the parsed path from mapper to the Strexp
Strexp#names is only used in a test, so rm
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.