push model and class handling to a helper builder object
push string handling to the builder object
push list handling to the builder object
remove suffix from the handler methods
undo optimized calls until the builder object is finished
probably should not check in a raise
use the helper method builder to construct helper methods
this class is a model, so it should act like one
:cry::gun: use an empty hash for magical speed.

For some reason, if the hash is empty, we choose "optimized" routes.  I
am not sure how or why optimized routes differ from regular routes.
But, if we make sure the hash is empty, we get a nice speed improvement.
Revert "reduce conditionals in url_for"

This reverts commit 9df60693d77813b362fb528fc62381ac8f1eec12.
flip conditional to use if/else instead of unless/else

Use if/else instead of unless/else so conditional reads better.
Merge pull request #15080 from eileencodes/flip-unless-else-conditional-in-halting-method

flip conditional to use if/else instead of unless/else
This model is a model so it should behaves like one
This is also a model
Test with ruby-head to make @tenderlove happy
Ok. Enough models for today :rage:
avoid array allocation when extracting usernames and passwords
fix bad merge
Fix regression on `assert_redirected_to`.

`assert_redirected_to` would fail if there is no controller set on
a `ActionDispatch::IntegrationTest`, as _compute_redirect_to_location
would be called on the controller to build the url.

This regression was introduced after 1dacfbabf3bb1e0a9057dd2a016b1804e7fa38c0.

[fixes #14691]
A minor stylistic fix and cleanup of mail deliveries.