ChainGang Modules¶ ↑
ChainGang modules contain methods that are “chainable”, i.e. they return self
.
! vs =¶ ↑
ChainGang methods that take arguments are defined with a trailing !
and aliased with a trailing =
. At the time of writing, the =
version can't be chained because the Ruby virtual machine seems to compile the two methods slightly differently and the =
version returns the arguments rather than self
. The =
version is intended to be used as an attr_writer
.