Ich habe ein kleines DSL-ähnliches Programm zum Hinzufügen von Getränken zu einem Array gemacht. Es ist ein ziemlich einfaches Beispiel für die Verwendung von instance_eval
und &block
, um ein schnelles Programm zu erstellen.Einen Ruby-Block erstellen ein Array zurückgeben?
Hier ist das Programm:
class Drinks
def initialize(&block) # Initialize drinks
@drinks = []
instance_eval &block
end
def drink(d)
@drinks << d
end # Add drink
def all_drinks
puts @drinks
end
end
add_drinks = Drinks.new do
drink "water"
drink "soda"
drink "juice"
end
add_drinks.all_drinks
Der Plan ist add_drinks
Auto-Rückkehr selbst zu machen, damit Sie müssen add_drinks.all_drinks
nicht verwenden. Wäre das möglich? Vielen Dank.
"automatisch zurückgeben"? Aber das ist nicht was du willst, du willst das Array? –