{public,protected,private} should raise a NameError instead of NoMethodError when given an undefined name