IMHO, anything that has side effects like this should not be called `can_something` or `has_something`. I think I'd actually prefer to be slightly less DRY here and have 2 different methods.