创建新库时我应该把自定义错误 类 放在哪里?
Where should I put custom error classes when creating a new library?
我正在创建我的第一个 gem,我正在努力寻找一个地方放置我的自定义错误 类。这就是我的 gem 目前的结构:
MyGem
|-lib
/secrets
- manager.rb
secrets.rb
我在根文件中添加了自定义错误 类:secrets.rb
。例如:
module Secrets
VERSION = "0.1.0"
class DateError < StandardError; end
end
因为我是 Ruby 的新手,而且这是我第一次创建 Gem,我不确定是否有正确的地方来放置它们。
两种常见的方法
这确实没有硬性规定。然而,两个最明智的选择是:
- 您 gem 的主要库文件(例如
lib/secrets
)。该文件由 gem 自动加载,它似乎是放置 one-liners 和适用于整个 gem. 的样板文件的合理位置
- 在您的 gem 的主库文件所需的 class 文件中(例如
lib/secrets/date_error.rb
)。那是大多数需要的东西应该存在的地方,一致的命名约定使 long-term 维护更容易。
Ruby 尽管它非常灵活,但没有什么能阻止您将代码放在源代码树中您喜欢的任何位置。核心约束实际上是命名空间(例如,您希望异常是 Secrets::DateError
还是其他?)和代码维护,因此将 class 放在不相关的文件中,例如 lib/secrets/versions.rb
或 lib/secrets/deeply/nested/path/date_error.rb
) 似乎是 less-than-ideal.
我正在创建我的第一个 gem,我正在努力寻找一个地方放置我的自定义错误 类。这就是我的 gem 目前的结构:
MyGem
|-lib
/secrets
- manager.rb
secrets.rb
我在根文件中添加了自定义错误 类:secrets.rb
。例如:
module Secrets
VERSION = "0.1.0"
class DateError < StandardError; end
end
因为我是 Ruby 的新手,而且这是我第一次创建 Gem,我不确定是否有正确的地方来放置它们。
两种常见的方法
这确实没有硬性规定。然而,两个最明智的选择是:
- 您 gem 的主要库文件(例如
lib/secrets
)。该文件由 gem 自动加载,它似乎是放置 one-liners 和适用于整个 gem. 的样板文件的合理位置
- 在您的 gem 的主库文件所需的 class 文件中(例如
lib/secrets/date_error.rb
)。那是大多数需要的东西应该存在的地方,一致的命名约定使 long-term 维护更容易。
Ruby 尽管它非常灵活,但没有什么能阻止您将代码放在源代码树中您喜欢的任何位置。核心约束实际上是命名空间(例如,您希望异常是 Secrets::DateError
还是其他?)和代码维护,因此将 class 放在不相关的文件中,例如 lib/secrets/versions.rb
或 lib/secrets/deeply/nested/path/date_error.rb
) 似乎是 less-than-ideal.