Isn't this just following the language binding precedence?
- Brace form has higher precedence and will bind to the last parameter if invocation made w/o parens.
- do/end form has lower precedence and will bind to the invocation even without parens.
If you don't want to write the do end form, you will need to put parenthesis around the call.
cattr_accessor(:is_admin) { true }