Gibt es eine Möglichkeit in method_missing Erklärung in Ruby festzustellen, ob ein bestimmtes missing_method genannt wurde (ohne Argumente) Klammern Notation, das heißt:Unterschied zwischen method_missing in Ruby Aufruf mit und ohne Klammern
foo.non_existing_method()
oder mit klammerlose Schreibweise:
foo.non_existing_method
?
Ich brauche das, um mein sehr spezifisches Testproblem zu lösen.
Ich nehme an, dass es keine sehr überraschende Frage ist, wenn man bedenkt, dass "super" anders ist als "super()". – Phrogz
@Phrogz: Das ist aber keine Nachricht senden. –
örgWMittag Richtig, aber dass dies der Fall ist, ist für Endbenutzer nicht offensichtlich, genauso wie es nicht offensichtlich ist, dass "alias_method" eine Methode ist, aber 'alias' ist Syntax, oder dass' & 'als Methode implementiert werden kann, aber' && 'darf nicht. Mein einziger Punkt hier ist, dass es einen Fall in der Sprache gibt, in dem sich "xxx" anders verhält als "xxx()", so dass es für manche vielleicht nicht extrem überraschend ist, wenn sie ihr Verhalten auf der Grundlage der Aufrufmethode ändern. – Phrogz