我正在使用bundler来管理我的gem的依赖项,而且我正在使用geminabox来托管我的宝石。使用bundler的rake release
是个坏消息,因为我的宝石会转到rubygems而不是geminabox,但是从该任务中获得额外的功能(推送标签等)确实很有帮助。
我写了一个宝石,它增加了rake release geminabox
和rake release rubygems
的能力,但现在我的库(与geminabox无关)取决于这个捆绑/ geminabox的东西,而这依赖于geminabox,还有sinatra,rack ......突然之间我的开发需求很大,只针对我的开发情况。其中一些宝石将公开发布,这些geminabox开发依赖性对其他任何人都不是必需的。
我意识到将一个gem注入一个bundle gemite特别是Bundler打算阻止的东西,那么你会推荐什么样的方法让我自己的自定义发布功能与gem本身无关?
答案 0 :(得分:0)
我已经在我的gem的Rakefiles中重新定义了默认的Bundler发布任务。你是对的,你不想吮吸Sinatra和一个臃肿的堆栈。
你有两个选择......
Rake文件
require "bundler/gem_tasks" Rake::TaskManager.class_eval do def remove_task(task_name) @tasks.delete(task_name.to_s) end end def remove_task(task_name) Rake.application.remove_task(task_name) end remove_task :release # So we don't publish to rubygems.org desc "release to geminabox" task :release => [:build] do |t| system "gem inabox" end