Bump version of bcrypt gem
let `insert_record` actuall save the object.

`before_add` callbacks are fired before the record is saved on
`has_and_belongs_to_many` assocations *and* on `has_many :through`
associations.  Before this change, `before_add` callbacks would be fired
before the record was saved on `has_and_belongs_to_many` associations, but
*not* on `has_many :through` associations.

Fixes #14144
Remove inclusion of rubysl gem for rbx on generated Gemfile

From #14026:

    Specific rbx-2 to limit testing on Rubinius 2.x (since there will be
    other versions of Rubinius > 2.x soon).

    Also, as of Rubinius 2.2.5, it is no longer necessary to bundle the
    rubysl gem.

This is what Rails master/4.1 supports, so we don't need to add rubysl to
gemfiles anymore.
Merge pull request #14149 from tjschuck/bcrypt_gem_rename

Bump version of bcrypt gem
test case for custom PostgreSQL enum type.

This test currently outputs the following warning:

```
unknown OID: current_mood(3567879) (SELECT  "postgresql_enums".* FROM "postgresql_enums"   ORDER BY "postgresql_enums"."id" ASC LIMIT 1)
unknown OID: current_mood(3567879) (SELECT  "postgresql_enums".* FROM "postgresql_enums"  WHERE "postgresql_enums"."id" = $1 LIMIT 1)
```

We have an open PR to deal with this issue. It will dynamically
register the OID for enum columns. This test case is merely to exhibit
the current behavior of PostgreSQL enum columns.
[ci skip] remove guide section on models in migrations

Both examples given are incorrect, and no one can seem to come up with
a realistic situation where this is an actual problem. For now, it seems like
the best thing to do is just scrap the section altogether.
Merge pull request #14208 from lukesteensen/remove-migration-example

[ci skip] remove guide section on models in migrations [ci skip]
move PostgreSQL UUID tests from `datatype_test.rb` to `uuid_test.rb`.
extract common code in `uuid_test.rb`.
[ci skip] Move association class method notes

Make explanation of association class methods clearer by moving notes to beginning of each example section.
Merge pull request #14211 from loganhasson/master

[ci skip] Move association class method notes
Fix controller test not resetting @_url_options

Commit 4f2cd3e9 introduced a bug by reordering the call to
`@controller.recycle!` above the call to `build_request_uri`. The
impact of this was that the `@_url_options` cache ends up not being
reset between building a request URI (occurring within the test
controller) and the firing of the actual request.

We encountered this bug because we had the following setup:

  class MinimumReproducibleController < ActionController::Base
    before_filter { @param = 'param' }

    def index
      render text: url_for(params)
    end

    def default_url_options
      { custom_opt: @param }
    end
  end

  def test_index
    get :index # builds url, then fires actual request
  end

The first step in  `get :index` in the test suite would populate the
@_url_options cache. The subsequent call to `url_for` inside of the
controller action would then utilize the uncleared cache, thus never
calling the now-updated default_url_options.

This commit fixes this bug calling recycle! twice, and removes a call
to set response_body, which should no longer be needed since we're
recycling the request object explicitly.
[ci skip] Update list of files extensions in rake notes guide
Merge pull request #14215 from robertomiranda/docs-rake-notes

[ci skip] Update list of files extensions in rake notes guide
pass the class name to `tableize`

We should not rely on to_s to return the name of the class
speed up `underscore` in cases that don't need to do anything

Benchmark:

Benchmark.ips do |x|
  x.report("home")       { "home".underscore }
  x.report("Home")       { "Home".underscore }
  x.report("homeBase")   { "homeBase".underscore }
  x.report("home::base") { "home::base".underscore }
end

Before:

Calculating -------------------------------------
                home      2598 i/100ms
                Home      2463 i/100ms
            homeBase      2300 i/100ms
          home::base      2086 i/100ms
-------------------------------------------------
                home    28522.3 (±14.7%) i/s -     140292 in   5.065102s
                Home    29165.8 (±14.9%) i/s -     140391 in   5.000475s
            homeBase    26218.5 (±7.1%) i/s -     131100 in   5.030485s
          home::base    27712.3 (±5.9%) i/s -     139762 in   5.064077s

After:

Calculating -------------------------------------
                home     23163 i/100ms
                Home      2432 i/100ms
            homeBase      2160 i/100ms
          home::base      2265 i/100ms
-------------------------------------------------
                home  1501614.8 (±10.2%) i/s -    7412160 in   5.009540s
                Home    28754.0 (±8.5%) i/s -     143488 in   5.033886s
            homeBase    25331.1 (±5.6%) i/s -     127440 in   5.047940s
          home::base    27089.9 (±5.5%) i/s -     135900 in   5.033516s
pass strings to the underscore method
Merge pull request #14105 from twooster/fix-controller-tests

Fix controller test not resetting @_url_options
Pass strings to demodulize method

Goes along with fea1cdcff4d50d302d8e8532432c3ab107ff816d and
59ec4562a2e70df455b2e44a67c340fa5254e26e.
Fix some validators when used on model instance

Now that Validator #setup is called from the initializer, we need a
reference to the model's class to be passed in to allow the validators
to continue functioning when used at the instance level.

Closes #14134.