(2 secs) The first step is the definition for validates, which just passes along the block it receives, along with a reference to the current object, to a new DSL class.
The DSL class is named ValidationHelpersAttributesBlock to indicate method names inside the block are used to specify attributes.