我已經制作了一個小型的DSL類程序,用於向陣列添加飲料。這是使用instance_eval
和&block
創建快速程序的一個非常基本的例子。使一個Ruby塊返回一個數組?
這裏的程序:
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
的計劃是使add_drinks
自動返回本身,所以你不必使用add_drinks.all_drinks
。這可能嗎?謝謝。
「auto-return itself」?但那不是你想要的,你想要數組? – 2012-04-14 14:34:31