Alias un metodo o un nome di variabile in Ruby significa creare un secondo nome per il metodo o la variabile. L'aliasing può essere utilizzato per fornire opzioni più espressive al programmatore che utilizza la classe o per aiutare a sostituire i metodi e modificare il comportamento della classe o dell'oggetto. Ruby fornisce questa funzionalità con le parole chiave "alias" e "alias_method".
La parola chiave alias accetta due argomenti: il vecchio nome del metodo e il nuovo nome del metodo. I nomi dei metodi devono essere passati come etichette, anziché stringhe. Le etichette vengono utilizzate per fare riferimento a metodi e variabili senza fare direttamente riferimento a esse. Se sei un nuovo programmatore di Ruby, il concetto di etichette può sembrare strano, ma ogni volta che vedi un'etichetta come ": methodname", basta leggerlo come "la cosa chiamata methodname". L'esempio seguente dichiara una nuova classe e crea un alias per il metodo on chiamato start.
#! / usr / bin / env ruby
classe Microonde
def on
mette "Il forno a microonde è acceso"
fine
alias: start: on
fine
m = Microwave.new
m.start # uguale a m.on
Ci possono essere momenti in cui desideri modificare il comportamento di una classe dopo che è stata dichiarata. È possibile alias e aggiungere nuovi metodi a una classe esistente creando una dichiarazione di seconda classe che abbia lo stesso nome della dichiarazione di classe esistente. È inoltre possibile aggiungere alias e metodi a singoli oggetti utilizzando una sintassi simile alla sintassi della classe ereditata. Il comportamento di qualsiasi classe può essere modificato creando un alias per qualsiasi metodo e quindi creando un nuovo metodo (con il nome del metodo originale) che chiama il metodo con l'alias.
Nel seguente esempio, viene dichiarata una classe microonde e viene creata un'istanza. La dichiarazione di seconda classe utilizza il metodo alias per modificare il comportamento del metodo "on" al fine di aggiungere un messaggio di avviso. La dichiarazione di terza classe viene utilizzata per modificare il comportamento dell'istanza specifica a microonde per aggiungere un avviso ancora più severo. Quando si aliasca un metodo più volte, assicurarsi di utilizzare nomi di metodo diversi per memorizzare il vecchio metodo.
#! / usr / bin / env rubyclass Forno a microonde
def on mette fine "Microonde acceso" endm = Microwave.newm.onclass Alias microonde: old_on1: on
def on mette "Avvertenza: non inserire oggetti metallici!" end old_on1 fine
m.on
# Messaggio per questo microonde specifico
classe < def on
mette "Questo forno a microonde è debole, aggiungi tempo extra"
old_on2
fine
fine
m.on # Visualizza un messaggio aggiuntivo
m2 = microonde.nuovo
m2.on # Non visualizza messaggi extra