我正在使用我的MOO項目來教我自己測試驅動設計,它讓我感興趣的地方。例如,我寫了一個測試,說一個特定的對象上的屬性應該總是返回一個數組,所以 -使屬性始終爲數組的最佳方式?
t = Thing.new("test")
p t.names #-> ["test"]
t.names = nil
p t.names #-> []
我對這個代碼是好的,但它似乎並不可怕紅寶石給我:
class Thing
def initialize(names)
self.names = names
end
def names=(n)
n = [] if n.nil?
n = [n] unless n.instance_of?(Array)
@names = n
end
attr_reader :names
end
有沒有更優雅的Ruby-ish方法來做到這一點?
(注:如果有人想告訴我,爲什麼這是一個愚蠢的測試來寫,這將是有趣的太...)
我有三個很好的答案。感謝大家。 – Shadowfirebird 2010-03-12 13:11:06
如果參數可轉換爲數組會發生什麼? – 2010-03-12 14:19:56