`find_in_batches` now returns an `Enumerator` when called without a block, so that it
can be chained with other `Enumerable` methods.
Fix breakage in XmlMini

- Boolean parsing breaks on non strings (i.e. integer 1|0)
- Symbol parsing breaks on non strings.
- BigDecimal parsing breaks due to missing require.
- Update changelog.
psql implementation of #index_name_exists?
Replace Post with Article in getting started guide [ci skip]

- Used Article model instead of Post as it may confuse with 'post'
  requests
- Tried to wrap the guide to 80 chars lines as much as possible.
- Removed unused image
- Fixes #13764
Add the ability to intercept emails before previewing

To support the ability for tools like CSS style inliners to operate on emails
being previewed this commit adds a hook in a similar fashion to the existing
delivery interceptor hook, e.g:

  class CSSInlineStyler
    def self.previewing_email(message)
      # inline CSS styles
    end
  end

  ActionMailer::Base.register_preview_interceptor CSSInlineStyler

Fixes #13622.
Don't use a class_attribute for ActionMailer::Base.preview_path

Since preview_path is read from ActionMailer::Base when previewing, subclasses
can’t change it so don’t there's no need for the extra overhead imposed by using it.
Support underscored symbols in Action Mailer config

We allow the use of underscored symbols to represent classes throughout
other parts of Rails so it seems incongruous that it's not supported in
`register_interceptor` and `register_observer`.
Remove an extra comment [ci skip]
Maintain current timezone when changing time during DST overlap

Currently if a time is changed during DST overlap in the autumn then the
method `period_for_local` will return the DST period. However if the
original time is not DST then this can be surprising and is not what is
generally wanted. This commit changes that behavior to maintain the current
period if it's in the list of periods returned by `periods_for_local`.

It is possible to alter the behavior of `period_for_local` by specifying a
second argument but since we may be change from another time that could be
either DST or not then this would give inconsistent results.

Fixes #12163.
Fix order syntax in find_by_sql example
Merge pull request #13846 from gsaks123/patch-1

Fix order syntax in find_by_sql example [ci skip]
revises references to :allow_(nil|blank) in some docs [ci skip] [Steven Yang & Xavier Noria]

Closes #11247.
API guidelines: revises warning about +...+ [ci skip]

Modern RDoc accepts a few more things in +...+. In particular symbols work now.

The current regexp in RDoc is https://github.com/rdoc/rdoc/blob/v4.1.1/lib/rdoc/markup/attribute_manager.rb#L133.
adds a section about booleans in the API guidelines [ci skip]
Customize subsecond digits when encoding DateWithTime

The subsecond fraction digits had been hardcoded to 3. This forced all
timestamps to include the subsecond digits with no way to customize the
value. While the subsecond format is part of the ISO8601 spec, it is not
adhered to by all parsers (notably mobile clients). This adds the
ability to customize the number of digits used, optionally setting them
to 0 in order to eliminate the subsecond fraction entirely:

ActiveSupport::JSON::Encoding.subsecond_fraction_digits = 0
Consolidate JSON encoding tests in one file
Rename subsecond_fraction_digits option to time_precision
Add CHANGELOG entry for #11464
Add support for JSON time_precision to Time and DateTime
Make ActiveSupport::TimeWithZone#xmlschema consistent

Both Time#xmlschema and DateTime#xmlschema can accept nil values for the
fraction_digits parameter. This commit makes this so for TimeWithZone
values as well.