Ruby: Wie erhält man den Standardwert von optionalen proc-Argumenten?

9

Nehmen wir an, ich habe einen proc / lambda / block / method / etc so:

%Vor%

Ich weiß, ich kann die Namen der Parameter herausfinden mit:

%Vor%

Aber wie kann ich den Wert erhalten, den ein gegebener optionaler Parameter annehmen würde, wenn er nicht ist?

PS: Ja. Ich weiß, dass dies vor hier gefragt / beantwortet wurde , aber die vorherige Lösung erfordert die Verwendung des Gems merb , was eigentlich etwas irreführend ist. merb selbst hängt vom Juwel% methopara ab (es sei denn, du bist auf JRuby oder MRI, was ich nicht bin), die selbst das Feature zum Zeitpunkt der Beantwortung der Frage zur Verfügung gestellt hat.

Traurigerweise scheint methopara derzeit Abandonware zu sein. Außerdem hat es nur Ruby 1.9 (und nicht einmal die neueste Version) unterstützt, daher suche ich nach einer Lösung, die für aktuelle Ruby-Versionen funktioniert.

    
mikev 23.12.2014, 09:09
quelle

1 Antwort

2

Angenommen, der proc / lambda wurde in einer Datei definiert, können Sie mit der Methode source_location nach dem Speicherort der Datei und der Zeilennummer suchen, für die sie definiert wurde.

%Vor%

Mit Hilfe von File.readlines können wir eine kurze Methode erstellen, bei der ein proc / lambda die Quellzeile ausgeben kann, auf der sie definiert wurde.

%Vor%

In Aktion sieht es ungefähr so ​​aus

%Vor%

Wenn Sie das gleiche für Methoden tun wollen, wird es ein bisschen mehr beteiligt. In diesem Fall empfehle die Lektüre ich diese Blog-Post von dem Pragmatischen Studio Blog: "View Source" On Ruby-Methoden

    
brownmike 29.01.2015 06:18
quelle