These warnings are there to help you find typos in your code; in this case it's an instance variable. When you write @diabled you will see a warning about it not being initialized, which helps you track down weird bugs.
Using the idiom is also not possible for boolean values because @a ||= false will always re-evaluate the right part of the expression. Remember that it's actually:
@a = @a || false
Now @a becomes false. So in the second iteration of this statement you evaluate this
@a = false || false
Now assume that the right side part of the expression takes 20 hours to compute.
I like to replace the
else
with an early bail-out, because I find it easier to read:Kudos to @skmetz and @avdi!