rails/rails — comment on commit be7d2248e9505983d1aacf0b33c657e6e3ddd9db
File:  line 0
By tomstuart:

This changes the meaning of the code, aside from the switch from private to public.

The original code uses delegation to make `#attribute` always do whatever `#read_attribute` currently does — so if the behaviour of `#read_attribute` is later wrapped or overridden, `#attribute` changes too — but `alias` binds `#attribute` to the *original* definition of `#read_attribute`, so these two methods will go out of sync if the behaviour of `#read_attribute` is modified. This could cause bugs if `#attribute` is now part of the public API.

See #4408 for a related problem.