reset_column_infomation shouldn't be part of the assertion.
recount files quantity
[ci skip ]Document transform_values && transform_values!
[ci skip] document truncate_words
code quotes for classname
[ci skip] wrap to 80 chars
[ci skip] docs asset_pipeline#CDNs
[ci skip] docs asset_pipeline CDN set up
[ci skip] docs CDN caching behavior
[ci skip] docs CDN header debugging
[ci skip] docs CDN Cache-Control behavior
[ci skip] docs can URL cache invalidation
[ci skip] fix grammar in docs
Fix typo in ActiveJob guide [ci skip]
[ci skip] use NOTE instead of Note
[ci skip] proper end to sentence
[ci skip] docs grammar
Highlight Class/Module [ci skip]
Update caching_with_rails.md [ci skip]

Highlight methods
Break conditional branches into separate methods

This breaks the two branches of the `if reflection.last` and `else`
to clearer see where the two methods can be refactored. Eventually
we hope to remove the need for these separated methods altogether.

Move the first branch outside the loop

This code doesn't need to be in the loop because it it always affects
the last chain. `get_bind_values` and `add_constraints` must match
in this context because `get_bind_values` is the caching of `add_constraints`

Use each_cons to remove need for `chain[i + 1]`

The `chain[i + 1]` is confusing because it's not immediately obvious
what it's trying to achieve. The use of `each_cons` makes it clear
we need to get the `next_reflection`.