如何在.gemspec文件中指定源代码?

时间:2016-07-18 19:52:41

标签: ruby rubygems gemfile gemspecs

我正在构建一个使用rails-assets-growl gem的gem。这个宝石可以使用不同的来源添加到我的Gemfile,而不是'https://rubygems.org',如下所示:

source 'https://rails-assets.org' do
  gem 'rails-assets-growl'
end

这在开发模式下工作正常。但是,当我在rubygems.org中发布我的gem时,不会将gem包含为依赖。

gem dependencies

  

我认为,这是因为我需要在gemspec而不是Gemfile中指定https://rails-assets.org源。但是,我不确定。

所以,问题是:

如何在gemspec文件中指定gem的来源?

1 个答案:

答案 0 :(得分:2)

为了发布gem并列出依赖项,您需要使用gem specification,这与Gemfile不同

为了将rails-assets-growl列为依赖项,您需要将其添加到gem specification。这里的问题是你不能将带有外部位置的gem添加到rubygems中,因此你需要首先将rails-assets-growl发布到rubygems中。

如果这对你不起作用,你仍然可以创建你的宝石,添加一个捆绑文件,你将添加rails-assets-growl,然后你将添加gemspec,如:

source 'https://rubygems.org'

gemspec

source 'https://rails-assets.org' do
  gem 'rails-assets-growl'
end

在最后一种情况下,gem不会被列为依赖项,但它将在gemfile上供其他人使用