使用Ruby存储和检索错误值的最简单方法是什么?

时间:2016-12-15 09:16:19

标签: ruby error-handling refactoring

在我的宝石中,我有错误消息,我一直在重复这样:

def validate_configuration!
   fail(ArgumentError, "You must specify a valid access_key") if access_key.nil? || access_key.empty?
   fail(ArgumentError, "You must specify a valid access_token") if access_token.nil? || access_token.empty? 
   fail(ArgumentError, "You must specify a valid environment") if environment.nil? || environment.empty?
end

然后在我的测试中我重复相同的事情:

it "is required and cannot be a blank string" do
   expect { create_client(access_key: nil) }.to  raise_error(ArgumentError, "You must specify a valid access_key")
   expect { create_client(access_key: '') }.to raise_error(ArgumentError, "You must specify a valid access_key")
end

我想将所有这些消息存储在某个对象中的单独文件中(这是令人困惑的部分),然后像这样访问它们:

messages.nil_error_for(:access_key)
messages.empty_error_for(:access_key)

更好的是,如果可能的话,我想完全跳过消息变量。

我应该使用Struct,模块吗? ruby中的惯用数据结构对于这种情况是理想的吗?

0 个答案:

没有答案