Added routing in test for actionpack
Fix failing test missed for the past year :(

When optimized path helpers were re-introduced in d7014bc the test added
in a328f2f broke but no-one noticed because it wasn't being run by the
test suite.

Fix the test by checking for nil values or empty strings after the args
have been parameterized.
Fixed README link in API [ci skip]

This should not be a link because
it's creating a link with activesupport README right now
Refactor to reduce number of loops

Only build the missing_keys array once we have detected that there
actually are missing keys by moving the check to be part of the block
that performs the path substitution.
bcrypt-ruby stable is 3.1
Merge pull request #11469 from bvogel/master

Update bcrypt-ruby stable version to 3.1
fixes plugin test for tutorial

[ci skip]
Merge pull request #11478 from newton10471/master

fixes plugin test for tutorial [ci skip]
Improve ActiveRecord::QueryMethods#includes docs

It's not immediately clear whether you can pass in multiple relations or
not. After going through the code a bit, I saw that the arguments are
just appended to an array. Also, added nested relations example.

[ci skip]
Merge pull request #11479 from henrikhodne/improve-ar-querymethods-includes-docs

Improve ActiveRecord::QueryMethods#includes docs [ci skip]
grammar fix in upgrade documentation
Merge pull request #11465 from arunagw/removed_missleading_readme_link_doc

Fixed README link in API
Use latest mysql2.

Fixes #11457
Merge pull request #11485 from simi/mysql2

Use latest mysql2.
Merge pull request #11483 from garysweaver/grammar_fix_in_upgrade_documentation

grammar fix in upgrade documentation
Add `#any_of` query method to active_record

This method is inspired by [any_of from
mongoid](http://two.mongoid.org/docs/querying/criteria.html#any_of).

It allows to compute an `OR` like query that leverages AR's `#where` syntax:

    manual_removal = User.where(id: params[:users][:destroy_ids])
    users = User.any_of(manual_removal, "email like '%@example.com'", {banned: true}).destroy_all

It can be used directly on model class, or through an association, or
behind an other relation.

    manual_removal = User.where(id: params[:users][:destroy_ids])
    User.any_of(manual_removal, "email like '%@example.com'", {banned: true})
    @company.users.any_of(manual_removal, "email like '%@example.com'", {banned: true})
    User.where(offline: false).any_of( manual_removal, "email like '%@example.com'", {banned: true})

Its main purpose is to both :

* remove the need to write a sql string when we want an `OR`
* allow to write dynamic `OR` queries, which would be a pain with a string

There's also a negative version, `#none_of`. This will return all active
users :

    banned_users = User.where(banned: true)
    unconfirmed_users = User.where("confirmed_at IS NULL")
    active_users = User.none_of(banned_users, unconfirmed_users)