如何使用eql?在Ruby中有多个参数?

时间:2014-07-04 11:34:05

标签: ruby

是否有任何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?有几个参数的方法。

1 个答案:

答案 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