Domanda

If I've built a private gem (hosted internally at my company, for instance), then I want to reuse that gem in another gem (not app!) that I'm building, how do I do that?

Where do I put my dependencies and tell my new gem how to find the old (already built) privately hosted gem?

È stato utile?

Soluzione

So this took me awhile to figure out, because the answer is, it's in TWO places. Do this:

  • In your gem's Gemfile (yes, Gemfile, not .gemspec), add the source line for your private gem server. If you're also pulling from RubyGems, then it'll look something like this:
source 'http://rubygems.org'
source 'http://myrubygems.mycompany.example.com:8808'  # Or wherever your gems are hosted internally (or externally)
gemspec
  • Then, in your mynewgem.gemspec put the following:
Gem::Specification.new do |gem|
  # [...]
  gem.add_dependency 'myoldgem'  # the gem hosted at myrubygems.mycompany.example.com:8808
end

The reason this works is probably obvious: Your Gemfile specifies the source for your gems and your .gemspec specifies the dependencies.

Hope this saves someone a few minutes.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top