Merge pull request #16205 from davejachimiak/remove_profile_and_benchmark_point

Remove "profile and benchmark" line from command line guide
Merge pull request #16198 from eileencodes/remove-need-for-macro-instance-var

Remove need for macro instance var
docs, `select` and friends with `multiple=true` include a blank string.

[Jonas Baumann & Yves Senn]

The submitted params from a select with `multiple: true` look as follows:

```
{post: {category: [""]}}

{post: {category: ["", "Category 1", "Category 2"]}}
```

This is a follow up to #1552.
helper methods are public, so we can just call them

also if you want a path from a named helper, you should call
helper_path, not helper_url(:only_path => true).
use a strategy object for generating urls in named helpers

since we know that the route should be a path or fully qualified, we can
pass a strategy object that handles generation.  This allows us to
eliminate an "if only_path" branch when generating urls.
Make restore_attributes public

Also make it accept a list of attributes to be changed. This will make
possible to restore only a subset of the changed attributes.

Closes #16203
pass the route name to define_url_helper

this allows us to avoid 2 hash allocations per named helper definition,
also we can avoid a `merge` and `delete`.
`recall` should be `path_parameters`, also make it required

"recall" is a terrible name.  This variable contains the parameters that
we got from the path (e.g. for "/posts/1" it has :controller => "posts",
:id => "1").  Since it contains the parameters we got from the path,
"path_parameters" is a better name.  We always pass path_parameters to
`generate`, so lets make it required.
[EXPERIMENTAL] run actionpack tests in parallel

only on forking systems though.  Feel free to revert this if it causes
problems.
Merge pull request #16188 from marianovalles/fix_rational_to_decimal_type_cast

Fix rational to decimal on type_cast_from_user
Prefer if/else for this case

One of the branches is using a proc to check if the value respond_to a
method so it is better to not do case comparations
Disable some tests on SQLite

These tests were passing before because the precision were not using to
cast the value. Not it is being used so it would fail on sqlite3
only parallelize on forking systems
do not restart the service, just stop it
fix filesystem race condition
check for valid options in validate method

This change prevents a certain class of user error which results when
mistakenly using the `validate` class method instead of the `validates`
class method.

Only apply when all arguments are symbols, because some validations use
the `validate` method and pass in additional options, namely the
`LenghValidator` via the `ActiveMode::Validations::validates_with`
method.
Merge pull request #16210 from sonnym/assert_valid_keys_in_validate

Check for valid options in validate method
pass the test reporter by reference

this prevents the array from being dumped as a DRbObject so we can
reduce communication with the server.  the reporter should always exist
on the server side, so we don't have to worry about GC
fix thread safety issues

this test case had a race condition where it could download data
multiple times.  We'll download the data once at class load.
don't log errors when all is fine