是否有任何Ruby方法可以重构以下代码:
class Season
def initialize(name)
raise ArgumentError unless name.eql?("spring") || name.eql?("winter") || name.eql? ("autumn") || name.eql?("summer")
@name = name
end
end
不幸的是,我们不能使用eql?有几个参数的方法。
答案 0 :(得分:0)
可能是一种更具可读性的方法:
class Season
def initialize(name)
ensure_valid(name)
@name = name
end
private
def valid_names
['spring', 'summer', 'autumn', 'winter']
end
def ensure_valid(name)
raise ArguementError unless valid_names.include?(name)
end
end