use name specified by 'as' for automatic inverse association to avoid reflecting on wrong association
fix bug in email with name example code

The display name in the email "to" field needs to be quoted otherwise
your email-sending service will fail when trying to deliver mail to
user's with commas in their name (i.e. John Smith, M.D.).
use Ruby for mocking
reduce calls to `named_host?`

`normalize_host` already calls `named_host?`, so there is no reason to
test `named_host?` again in the `extract_domain` method.
only extract domain from the options hash once
lookup subdomain from the options hash once, defaulting to true

if the subdomain wasn't specified, it's the same as if specifying
:subdomain as `true`, so we can default the value to `true` safely.
[ci skip] Correct output of #assert_not
only check named_host? once in normalize_host
Update test data which doesn't reflect expected usage

Topics call `serialize :content`, which means that the values in the
database should be YAML encoded, and we would only expect to receive
YAML strings to `update_column` and `update_columns`.
In tag helper, honor html_safe on array parameters; also make safe_join more similar to Array.join by first calling flatten.
Merge pull request #15672 from sgrif/sg-topics-content

Update test data which doesn't reflect expected usage
Merge pull request #15666 from akshay-vishnoi/doc_changes

Correct output of #assert_not
Merge pull request #15667 from samdec/mailer_doc_bug_fix

fix bug in email with name example code
Merge pull request #15654 from pdg137/master

In tag helper, honor html_safe on arrays; also make safe_join more similar to Array.join
Fix performance regression on preloading HABTM associations

We'd spend a lot of time calling `hash` and `eql?` on the join model,
which has no primary key. Calling `id` with no primary key is a really
slow way to get back `nil`, so we can improve the performance there.
However, even with the escape clause, we *still* weren't getting high
enough performance, as we were checking the primary key too much. `hash`
will always return `nil.hash` for records with no id, and `==` will
always return `false`. We can optimize those cases in the HABTM join
model.
Merge pull request #15665 from sgrif/sg-id-perf

Fix performance regression on preloading HABTM associations
Defer to super, rather than re-implementing Object#hash
Use a conditional rather than early return in `id`
Merge pull request #15676 from sgrif/sg-object-hash

Defer to super, rather than re-implementing Object#hash
Merge pull request #15677 from sgrif/sg-less-imperative-pk

Use a conditional rather than early return in `id`