Merge pull request #16336 from akshay-vishnoi/fix-tests

Add missing test case for Array#to_sentence, collect all test cases for Object#to_param at one place and avoid repitition
Get request should not write to database note added. [skip ci]
Merge pull request #16329 from deependersingla/master

GET request should not write to database note added. [ci skip]
:nail_care: from #16329 [ci skip]
eval_block should be private
only ask for the routes module once

we can cache the module on the stack, then reuse it
pass the module to define_named_route_methods

after this, we can disconnect @module from the instance
helpers should be a Set so it doesn't grow unbounded

since helpers is a set, we can be confident about when to remove methods
from the module.
ask the named routes collection if the route is defined

we should not be accessing internals to figure out if a method is
defined.
oops! :bomb:

use helpers.include? so we don't get any false positives
Merge pull request #16335 from arthurnn/rm_parent_state_trasaction

Remove @state.parent assignment on commit
Add implicit receiver support to `Object#with_options`
Merge pull request #16339 from rwz/with_options_implicit

Add implicit receiver support to `Object#with_options`
Merge pull request #15959 from aditya-kapoor/remove-unneeded-cases

remove unneeded test model for ActiveModel test cases.
Merge pull request #101 from DouweM/patch-9

Rename variables for consistency.
Revert "Merge pull request #15305 from tgxworld/remove_unnecessary_require"

This reverts commit f632f79b8dcd144408c66a544984b2ba9cf52f87, reversing
changes made to 98c7fe87690ca4de6c46e8f69806e82e3f8af42d.

Closes #16343
Deprecate `*_path` methods in mailers

Email does not support relative links since there is no implicit host. Therefore all links inside of emails must be fully qualified URLs. All path helpers are now deprecated. When removed, the error will give early indication to developers to use `*_url` methods instead.

Currently if a developer uses a `*_path` helper, their tests and `mail_view` will not catch the mistake. The only way to see the error is by sending emails in production. Preventing sending out emails with non-working path's is the desired end goal of this PR.

Currently path helpers are mixed-in to controllers (the ActionMailer::Base acts as a controller). All `*_url` and `*_path` helpers are made available through the same module. This PR separates this behavior into two modules so we can extend the `*_path` methods to add a Deprecation to them. Once deprecated we can use this same area to raise a NoMethodError and add an informative message directing the developer to use `*_url` instead.

The module with warnings is only mixed in when a controller returns false from the newly added `supports_relative_path?`.

Paired @sgrif & @schneems
Prevent using String#scrub on Rubinius

Rubinius' has built-in support for String#scrub but it doesn't have yet
support for ASCII-incompatible chars so for now, we should rely on the
old implementation of #tidy_bytes.
Merge pull request #16345 from robin850/rbx-tidy-bytes

Prevent using String#scrub on Rubinius
Remove redundant `self.` in class method calls

These are the only instances of this in the whole code base.