2013-12-09 6 views

Antwort

2

set hat keine besondere Bedeutung in Ruby. Tatsächlich ist es kein Ruby-Schlüsselwort, es ist ein Capistrano-Befehl, Teil des Capistrano-DSL.

Technisch gesehen ist es eine Ruby-Methode. Sie können die method definition sehen.

def set(key, value) 
    config[key] = value 
end 
5

Das ist kein Schlüsselwort in Standard Ruby. Es ist ein Beispiel für ein Element in einer domänenspezifischen Sprache (DSL).

Grundsätzlich können Sie mit einer DSL auf einer höheren Abstraktionsebene arbeiten, indem Sie gezieltere Konstrukte als eine allgemeine Sprache wie Ruby bereitstellen. Das "Set" ist hier ein Beispiel dafür. Es ist wahrscheinlich nur eine Funktion in Ruby, die Sie tatsächlich aufrufen, aber wenn Sie es verwenden, fühlt es sich eher wie ein Sprachkonstrukt an. Ruby ist besonders gut beim Schreiben von DSLs

Was das in Capistrano angeht, habe ich keine Ahnung, ich habe Capistrano nie benutzt. :)

5

set ist nicht Schlüsselwort Ruby ist capistrano Befehl
von Capistrano Quelle

def set(key, value) 
    @properties[key] = value 
end 
3

Die anderen Jungs mein Donner gestohlen hat, aber here ist eine Diskussion über set im Rahmen des Capistrano DSL:

"Diese Methode ist die primäre Methode zum Definieren von Variablen, auf die innerhalb einer Capistrano-Konfiguration überall zugegriffen werden kann d aufgeschobene Variablen, abhängig davon, ob Sie einen Block zur Definition der Variablen verwendet haben oder nicht. "

0

Es könnte bezeichnet werden als‚Bareword‘, aber nicht ein keyword, wie das ist, wie Ruby-Namen, um die Sammlung von‚Reservierte Wörter‘für die Sprache. Als solches ist es entweder eine Variable oder eine Methodennamen, aufgrund der Tatsache, dass es nicht mit @ oder $ oder @@ vorangestellt ist und nicht aktiviert.

es ist in der Tat nur eine Methode.