ruby-on-rails - 如何命名依赖于他人 gem 的 gem ?

原文 标签 ruby-on-rails ruby web-services rspec

我想创建一个包含自定义 rspec 匹配器的 gem。它们用于测试 Web 服务,因此两个词部分是 RSpec 和 Webservice。现在, gem 名称应该是;

  • rspec-webservice
  • rspec-matchers-webservice
  • rspec_webservice

  • ... 或者是其他东西?

    naming guidelines似乎没有解决这种情况:
    rspec-webservice似乎是正确的,因为我正在“向另一个 gem 添加功能”。但这将对应于 RSpec::Webservice 中的 gem,而且我不是 RSpec 的维护者,因此可能会出现命名冲突。
    rspec-matchers-webservice是一种可能性,因为这似乎是 RSpec 库本身 is organized .
    rspec_webservice是一个安全的选项,因为它只是在它自己的根命名空间(RSpecWebservice)中,并且将排除冲突,因为 ruby​​gems 系统将确保此名称不能用于另一个 gem。

    所有这些担忧都与这样的 RSpec 扩展是否会 的问题完全分开。运行在各种命名空间中。

    编辑:我得到的一条建议是不要使用任何这些,而是​​想出一个非描述性的名称。类似于 web 服务器的乘客。例如。 rspec-dogweather .

    最佳答案

    在这种情况下没有标准指南。这里有一些方法:

    如果您的 gem 为现有库提供了额外的功能,那么使用模式 original-feature 是很常见的。 .值得注意的例子:

  • rspec-rails
  • 网络SSH
  • 守卫-rspec

  • 请注意,此方法也用于将产品拆分为组件
  • rspec 匹配器
  • rspec 核心

  • 在这种情况下,将功能嵌入到主库命名空间中是很常见的。正如您所提到的,名称冲突存在潜在风险。
    rspec-matchers-webservice这是一个选择,但我没有看到 rspec-matchers “零件”。这不会阻止您使用这种选择。我见过使用不同顺序的其他库,例如 rspec-html-matchers , 但我认为 rspec-matchers-foo更好。
    rspec_webservice更安全,但不是很常见。

    另一种可能性是一个全新的名称,但这可能不是一个明智的选择,特别是如果您的库有一个非常小的 nike,并且很可能从搜索引擎或 RubyGems 网站上搜索的人中找到。在您的情况下,我会坚持使用与您扩展的产品相近的名称。

    总之,我的建议是看看现有的 rspec extensions了解可能的常见模式并做出决定。 rspec-matchers-webservice在我看来是最好的选择。

    你也可以考虑写信给 RSpec 维护者并向他们询问建议。

    关于ruby-on-rails - 如何命名依赖于他人 gem 的 gem ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20930190/

    相关文章:

    ruby-on-rails - 在 Rails 中使用 elasticsearch-model 保存特定字段

    ruby - 在Ruby中的正则表达式中转义\

    c# - SharePoint Web 服务 : Need to fetch list in a sub-site

    java - 使用在wsimport JAX-WS中创建的Web服务

    java - 无法使用 JSON REST WS

    html - 如何适应屏幕全高(使用CSS)?

    ruby-on-rails - heroku 不显示自定义错误页面

    ruby-on-rails - Rails 3 - 过滤器链停止为 :authentication rendered or redirected

    ruby - 如何在 rails 4 应用程序中设置 "application/ld+json"schema.org 元数据

    ruby - 如何在eclipse的ruby插件中自定义编辑器的背景颜色?