如何创建一个新的Ruby gem?

时间:2010-12-05 00:39:02

标签: ruby rubygems bundler

要创建一个新的Ruby gem,我应该使用Jeweler还是应该使用Bundler的内置gem骨架来创建基础gem?有什么不同之处?

6 个答案:

答案 0 :(得分:52)

Use Bundler

从命令行:

bundle gem your_new_gem

这将创建一个名为your_new_gem的目录,其中只有一组基本文件和目录结构,现在被认为是最佳实践。它快速,简单,是一个很好的起点。

答案 1 :(得分:7)

创建宝石并不困难,我建议尝试从头开始构建宝石,不需要任何工具。在您知道所涉及的内容(创建gemspec,构建并将其推送到rubygems.org)之后,您可以使用工具来加速该过程。我的猜测是你不会因为制作宝石几乎不是麻烦。

答案 2 :(得分:3)

我会和珠宝商一起去。 Bundler骨架只会为您提供基础知识。 Jeweler有很多可供使用的选项和许多有用的rake任务,用于版本控制,推送到github,创建gemspec,构建和安装。

如果你正在使用Rails 3引擎,我有一个Jeweler fork(绝对是正在进行的工作),它将生成app skelaton并包含引擎文件。您只需运行带有--rails3-engine的jeweler命令作为选项。如果您有兴趣,这是叉子:
https://github.com/johnmcaliley/jeweler

答案 3 :(得分:1)

这是一个值得关注的替代方案:ore

Bundler为ruby gems提供了一个模板,而ore有多个内置模板,还有创建自己的模板的能力。它还支持Git,SVN(urgh)和Mercurial。

答案 4 :(得分:1)

我建议使用内置的bundler命令。

bundle gem your_gem_name

创建gem时应遵循一些规则。例如命名约定和版本控制规则。 我最近写了一篇关于在netguru博客中创建宝石的文章。我想你会在那里找到你需要的东西。

https://netguru.co/blog/posts/creating-a-gem-a-step-by-step-tutorial

希望这有帮助。

答案 5 :(得分:1)

您也可以在RubyMine中构建宝石。文件>新项目>新宝石。就这么简单。但我想对这种方法做一些说明:

对于调试,RubyMine将使用Fast Debugger宝石ruby-debug-ide。我知道现在大多数人都将Pry与Byebug一起使用,但是ruby-debug-ide是一个将ruby-debug与Eclipse(RDT),NetBeans和RubyMine等IDE粘合的接口。

在运行>编辑配置> +> Ruby下,根据此处的文档添加新的调试配置:https://www.jetbrains.com/help/ruby/run-debug-configuration-gem-command.html#1

在“ Ruby脚本”下的“配置”下,我将路径添加到lib下的ruby gem文件:lib / my_gem.rb 在“配置”下的“ Ruby SDK”下,我指定要使用的RVM gemset。 在“捆绑程序”部分下,我选中“在捆绑程序的上下文中运行脚本”。这将使用bundle exec,它将读取项目根目录下Gemfile中的依赖项。现在,对于gems,Gemfile包含一个名为“ gemspec”的方法,该方法依次读取my_gem.gemspec中依赖项中的依赖项。在那里,我已经将依赖项传递给了Gem :: Specification.new块:

  spec.add_development_dependency "bundler", "~> 1.7"
  spec.add_development_dependency "rake", "~> 10.0"