Ruby on rails 使用Rails 3.1创建我的第一个开源RubyGem应该使用哪种方法?

Ruby on rails 使用Rails 3.1创建我的第一个开源RubyGem应该使用哪种方法?,ruby-on-rails,open-source,rubygems,ruby-on-rails-3.1,ruby-on-rails-plugins,Ruby On Rails,Open Source,Rubygems,Ruby On Rails 3.1,Ruby On Rails Plugins,我应该使用新的Rails 3.1Rails插件new命令、jeweler还是bundler来创建我的第一个RubyonRails宝石?您推荐哪些教程来帮助我开始为Ruby on Rails编写开源Gems?由于Gems更易于安装和管理,因此最好使用jeweler来创建您的gem。找到灵感的最好方法是打开任何具有Rails集成的gem的源代码,看看它们是如何实现的。一般来说,这是通过Railties设施完成的。由于gem更易于安装和管理,因此最好使用jeweler创建您的gem。找到灵感的最好方法

我应该使用新的Rails 3.1
Rails插件new
命令、jeweler还是bundler来创建我的第一个RubyonRails宝石?您推荐哪些教程来帮助我开始为Ruby on Rails编写开源Gems?

由于Gems更易于安装和管理,因此最好使用
jeweler
来创建您的gem。找到灵感的最好方法是打开任何具有Rails集成的gem的源代码,看看它们是如何实现的。一般来说,这是通过Railties设施完成的。

由于gem更易于安装和管理,因此最好使用
jeweler
创建您的gem。找到灵感的最好方法是打开任何具有Rails集成的gem的源代码,看看它们是如何实现的。一般来说,这是通过Railties工具完成的。

一般来说,Ruby gems非常简单,Rails插件只是在某种程度上接触Rails API的gems。(正如另一个答案所指出的,
Railtie
s是一种很好的钩住钢轨的方法)。要编写gem,请指定一个文件夹,并在其中包含:

  • .gempec
    :列出gem的名称、版本、作者、网站、gem依赖项列表以及要包含在gem中的文件列表。(Rails'plugin new和Bundler gem都将为您生成良好的.gempecs,见下文)
  • lib/.rb
    :这是gem的主代码。通常,它包含一个以gem命名的类或模块。(Rails'
    pluginnew
    与模块一起提供)
其他一切都是可选的,但良好实践包括:

  • test/
    spec/
    :这是测试的地方。由于Rails插件通常在应用程序中使用,Rails的
    pluginnew
    会在
    test/
    中创建一个虚拟应用程序。如果您的gem非常独立,没有明确的Rails集成,那么您就不需要虚拟应用程序
  • 自述,描述你的宝石做什么和如何使用它
您可以完全手动创建此文件夹,尤其是
.gempec
文件,但这两个工具将为您提供以下功能:

Bundler为您提供:

  • 为您创建
    Gemfile
    ,并在捆绑包中自动包含
    .gempec
    中指定的依赖项(它是一个
    Gemfile
    命令,
    gempec
  • 为您创建一个示例
    .gempec
    ,将其设置为从
    lib//version.rb中提取您的gem版本
  • 设置使用Git生成gem文件列表(很方便,但是gem构建计算机需要安装Git)。通常我用Rake来做这个,但它更烦人
Rails的plugin new像Bundler一样执行
Gemfile
.gempec
。此外:

  • Rails使用Ruby生成文件列表。很好
  • 它为您设置了一个最小的目录结构,大部分是空的
  • 它设置了一个示例测试和一个完整的虚拟应用程序(!),以供测试运行。我刚看到这个,我觉得这是个天才
Rails还将使您成为一个
Rakefile
,用于添加rake任务,这两个工具都将为Git预先配置一个.gitignore以忽略一些常见产品

要在实际应用程序中测试gem,请执行
gem build.gempec
,并将
gem
添加到应用程序的
Gemfile
。这将生成一个-.gem文件,其中包含整个gem。您可以
gem安装-.gem
,Bundler将接收它

当您准备发布时,
gem push-.gem
会将其推送到RubyGems.org。有关获取帐户和推送gems的详细信息,请参阅

此外,在开发过程中,您希望对gem进行更改,而不必继续构建(和安装)版本。单元测试将解决其中的一些问题,但如果您想直接从源代码使用gem,Bundler有一个很棒的工具:

gem,:path=>“”

该文件夹包含
.gempec
文件


有人知道使用珠宝商的理由吗?我想知道它比这些家伙更能做什么。一般来说,手工编写
gemspec
s对我来说非常简单,只要你有一个模板可以复制、粘贴和修改。此外,如果我在每个工具提供给您的内容中犯了任何错误或遗漏,我会将答案设置为一个wiki,以便更正它们。

一般来说,Ruby gems非常简单,Rails插件只是在某种程度上与Rails API相接触的gems。(正如另一个答案所指出的,
Railtie
s是一种很好的钩住钢轨的方法)。要编写gem,请指定一个文件夹,并在其中包含:

  • .gempec
    :列出gem的名称、版本、作者、网站、gem依赖项列表以及要包含在gem中的文件列表。(Rails'plugin new和Bundler gem都将为您生成良好的.gempecs,见下文)
  • lib/.rb
    :这是gem的主代码。通常,它包含一个以gem命名的类或模块。(Rails'
    pluginnew
    与模块一起提供)
其他一切都是可选的,但良好实践包括:

  • test/
    spec/
    :这是测试的地方。由于Rails插件通常在应用程序中使用,Rails的
    pluginnew
    会在
    test/
    中创建一个虚拟应用程序。如果您的gem非常独立,没有明确的Rails集成,那么您就不需要虚拟应用程序
  • 自述,描述你的宝石做什么和如何使用它
您可以完全手动创建此文件夹,尤其是
.gempec
文件,但这两个工具将为您提供以下功能:

Bundler为您提供:

  • 为您创建
    Gemfile
    ,并自动将
    .gempec
    中指定的依赖项包含在捆绑包中(它是单个