Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 创建新库时,应将自定义错误类放在何处?_Ruby_Rubygems - Fatal编程技术网

Ruby 创建新库时,应将自定义错误类放在何处?

Ruby 创建新库时,应将自定义错误类放在何处?,ruby,rubygems,Ruby,Rubygems,我正在创建我的第一个gem,我正在努力找到一个地方来放置我的自定义错误类。这就是我的创业板目前的结构: MyGem |-lib /secrets - manager.rb secrets.rb 我在根文件中添加了自定义错误类:secrets.rb。例如: 模块机密 VERSION=“0.1.0” 类DateError

我正在创建我的第一个gem,我正在努力找到一个地方来放置我的自定义错误类。这就是我的创业板目前的结构:

MyGem
|-lib
 /secrets
  - manager.rb
 secrets.rb
我在根文件中添加了自定义错误类:
secrets.rb
。例如:

模块机密
VERSION=“0.1.0”
类DateError
因为我是Ruby新手,这是我第一次创建Gem,所以我不确定是否有正确的位置放置它们。

两种常见的方法 关于这一点,真的没有硬性规定。然而,两个最明智的选择是:

  • gem的主库文件(例如
    lib/secrets
    )。这个文件是由gem自动加载的,它似乎是放置适用于整个gem的一行程序和样板文件的合理位置
  • 在gem的主库文件所需的类文件中(例如
    lib/secrets/date\u error.rb
    )。这就是大多数需要的东西应该存在的地方,而一致的命名约定使长期维护更容易
  • Ruby虽然灵活,但没有什么能阻止您将代码放在源代码树中任何您喜欢的地方。核心约束实际上是名称空间(例如,您希望异常是
    Secrets::DateError
    还是其他什么?)和代码维护,因此将类放在一个不相关的文件中,如
    lib/Secrets/versions.rb
    lib/Secrets/deep/nested/path/date\u error.rb
    )似乎不太理想