Call public methods rather than class_eval'ing
Remove unused text? predicate method and delegation

The method has been removed in 09206716f8695f6b8467f15c1befa5a4c3c10978
(PR #16074), but the delegation was apparently missed, and one instance
of the method was added back with the addition of OID::Xml in
336be2bdf7dfa1b31879d0ab27e5f3101b351923 (PR #16072), so we can safely
rm both.
Bring back the helpers tests

Also keep the hook as other tools may rely on it,
we just don't do anything by default on Rails.
Fix AS docs / changelog with wrong method [ci skip]
Cleanup Transaction inheritance.

Transaction class doesnt need to encapsulate the transaction state using
inheritance.
This removes all Transaction subclasses, and let the Transaction object
controls different actions based on its own state. Basically the only
actions would behave differently are `being`,`commit`,`rollback` as they
could act in a savepoint or in a real transaction.
Moved #create! method from Validations to Persistence module
Merge pull request #16404 from bogdan/move-create-with-bang

Moved #create! method from Validations to Persistence module
Fix digest ETAG test.

After
https://github.com/rack/rack/commit/12528d4567d8e6c1c7e9422fee6cd8b43c4389bf
ETag will include a `W/` before the digest.
Merge pull request #16405 from arthurnn/fix_digest_etag_test

Fix digest ETAG test.
We don't need parenthesis for this
just assign the instance variables on the test
Merge pull request #16364 from arthurnn/make_transaction_one_class

Clarify Transaction responsibilities by breaking unneeded inheritance hierarchy.
no reason to lazily instantiate the routes

especially if you're just going to add a call two lines down that
populates the cache. common.
a rails application should be an engine subclass
call the routes method on engines

if we access the instance, we can free up lots of codes