Improve ERB dependency detection.

The current implementation can't handle some special cases of oddly-formatted Ruby. Now we are able to detect them:

* Multi-line arguments on the `render` call
* Strings containing quotes, e.g. `"something's wrong"`
* Multiple kinds of identifiers - instance variables, class variables and globals
* Method chains as arguments for the `render` call

Also, this fix reduces the rate of "false positives" which showed up when we had calls/access to identifiers containing `render`, like `surrender` and `rendering`.
Avoid scanning multiple render calls as a single match.

Each chunk of text coming after `render` is now handled individually as a possible list of arguments.
Update changelog
Clarify behavior of json_escape, update examples

The behavior of json_escape was fixed in 2f1c5789, but the doc
changes and example in that commit incorrectly indicated that the
return value would be html-safe. Since quotation marks are
preserved, the raw value is not safe to use in other contexts
(specifically HTML attributes).
use enum labels as form values. Achieved by `_before_type_cast`.

Closes #13650, #13672

This is an alternate implementation to solve #13650. Currently form fields
contain the enum value (eg. "1"). This breaks because the setter `enum=`
expects the label (eg. "active").

ActiveRecord::Enum allows you to use labels in your application but store numbers.
We should make sure that all parts after AR are dealing with labels and not the
underlying mapping to a number.

This patch defines `_before_type_cast` on every enum column to return the label.
This method is later used to fetch the value to display in form fields.

I deliberately copied the implementation of the enum getter instead of delegating to it.
This allows you to overwrite the getter and for example return a `Value Object` but have it
still work for form fields.
Fix iterating over DateTime by doing strict checking for Time objects

- Fixes #13667
Merge pull request #13668 from prathamesh-sonpatki/issue-13667

Fix iterating over DateTime by doing strict checking for Time objects
fixes the Gemfile generator templates

The templates were written as if for a given gem you could either pass a version
or options, but not both. But you may want to specify a version and also a group
or whether the gem has to be required, for example.
upgrade SDoc

Kudos to @zzak for taking over SDoc and make it work with RDoc 4.
fixes a typo in a CHANGELOG
Skip Spring App Generator tests on JRuby

Spring makes extensive use of Process.fork, so won't be able to provide
JRuby Support, hence skip these tests on JRuby.
Merge pull request #13673 from senny/use_enum_label_in_forms

use enum labels as form values. Achieved by `_before_type_cast`.
Merge pull request #13646 from jenseng/json_escape

Clarify behavior of json_escape [ci skip]
Merge pull request #13687 from gaurish/spring-has-no-love-for-jruby

Skip Spring App Generator tests on JRuby
doc proc/lambda arg on inclusion validation. Closes #13689. [ci skip]
highlight http://localhost:3000 in README.md. Closes #13643. [ci skip]

This has no effect on the API docs. The main API page is taken from:
    railties/RDOC_MAIN.rdoc
fix bug in becomes! when changing from base to subclass. Closes #13272.
standardize on jruby_skip & rbx_skip

This Adds helpers(jruby_skip & rbx_skip). In Future, Plan is to use
these helpers instead of calls directly to
RUBY_ENGINE/RbConfig/JRUBY_VERSION
Merge pull request #13693 from gaurish/typo

[JRuby] Fix incorrect RUBY_ENGINE value
Updated Changelog to reflect removal of :dependent => :restrict

Based on https://github.com/rails/rails/issues/2502, the option has
been removed.