【问题标题】:What are the steps needed to create and publish a rubygem of your own?创建和发布您自己的 ruby​​gem 需要哪些步骤?
【发布时间】:2008-09-23 10:15:03
【问题描述】:

所以你已经创建了一个 ruby​​ 库。

您如何创建和发布您的 ruby​​gem?在创建和发布 ruby​​gem 方面有哪些常见的陷阱和陷阱?

【问题讨论】:

    标签: ruby rubygems


    【解决方案1】:

    有多种工具可帮助您构建自己的 gem。 hoenewgem 是最有名的,并且有很多好的品质。但是,hoe 将自身作为依赖项添加到您的 gem 中,并且 newgem 已成为一个非常大的工具,当我想快速创建和部署一个 gem 时,我发现它很笨重。

    我最喜欢的工具是 Tim Pease 的 Mr Bones。它是轻量级的、功能强大的,并且不会向您的项目添加依赖项。要使用它创建项目,您只需在命令行上运行bones <my_project_name>,并为您构建一个框架,其中包含一个用于代码的lib 目录、一个用于您的工具的bin 目录和一个测试目录.配置在Rakefile,简洁明了。这是我几个月前做的一个项目的配置:

    load 'tasks/setup.rb'
    
    ensure_in_path 'lib'
    require 'friend-feed'
    
    task :default => 'test'
    
    PROJ.name = 'friend-feed'
    PROJ.authors = 'Clinton R. Nixon'
    PROJ.email = 'crnixon@gmail.com'
    PROJ.url = 'friend-feed.rubyforge.org'
    PROJ.rubyforge_name = 'friend-feed'
    PROJ.dependencies = ['json']
    PROJ.version = FriendFeed::VERSION
    PROJ.exclude = %w(.git pkg)
    

    Mr Bones 具有您期望的标准功能集:您可以使用它来打包库的 gem 和 tar 文件,以及在 RubyForge 上发布它并在那里部署您的文档。但是,它的杀手级功能是能够将其骨架冻结在您的主目录中。当您运行bones --freeze 时,名为.mrbones 的目录将复制到您的主目录中。您可以在其中编辑文件,为您的宝石制作一个按照您的工作方式工作的骨架,从那时起,当您运行骨骼来创建新宝石时,它将使用您的个人宝石骨架。您可以通过运行bones --unfreeze 来解冻 Mr Bones,您的骨架将被备份,并且将再次使用默认骨架。

    (编者按:几个月前我写了一篇关于此的博客文章,其中大部分内容是从中复制的。)

    【讨论】:

    • 把问题的答案换成了这个,因为它比“try google”更具描述性。
    【解决方案2】:

    我推荐github 作为起点,尤其是对于开源项目。

    【讨论】:

      【解决方案3】:

      也可以尝试谷歌搜索...我的第一个搜索结果...

      【讨论】:

        【解决方案4】:

        您可能还想查看 Hoe gem,它可以自动完成 gem 创建过程。

        见:http://nubyonrails.com/articles/tutorial-publishing-rubygems-with-hoe

        【讨论】:

          【解决方案5】:

          我实际上写了一个关于这个的教程,我是在学习的时候写的。它更专注于我编写的游戏而不是库。此外,它假设您想通过 rake 而不是自己构建 gem:

          • Part 1 了解如何创建 gem。
          • Part 2 了解如何运行您的 gem 安装的二进制文件并获取资源。

          【讨论】:

            【解决方案6】:

            hoe 不再像关闭 ruby​​gems 1.2 那样将自身添加为依赖项。它的 rake 任务集中在将 ruby​​gem 部署到 ruby​​forge 上。如果您只想从 github 提供 gem,我认为有一些新的 hoe-esque rake 任务工具可以提供帮助。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2020-12-20
              • 1970-01-01
              • 2016-03-05
              • 2016-01-05
              • 2016-05-17
              • 1970-01-01
              • 1970-01-01
              • 2012-06-30
              相关资源
              最近更新 更多