BasicObject#method_missing does not always raise NoMethodError for missing methods
|ruby -v:||ruby 2.0.0p247 (2013-06-27 revision 41674) [i686-linux]||Backport:||1.9.3: UNKNOWN, 2.0.0: UNKNOWN|
def method_missing(name, *)
rescue NoMethodError => e
if the method is called without the receiver, it will raise just a NameError (variable or method missing)
the text of the error can differ depending on the presence of the receiver, but it seems counter-intuitive to not receive a NoMethodError when you are clearly attempting to call a non-existent method.