22
votes

I am working on a gem (Gem A) which uses another gem (Gem B) that I have also written. Until this point Gem B has been added in the gemspec for Gem A:

gem.add_dependency "gem_a", "~> 0.0.4"

But I now find the need to debug using my local version.

To declare a local dependency in a Gemfile I could do:

gem 'gem_a', path: "/local/path/to/gem_a"

But how do I declare a local dependency in a .gemspec?

2
Not sure if this can be done, but it would be useful if gems are being co-developed. Trouble is the two declarations of dependency are for two different installers to process. What would gem build do with a local dependency? The resulting package couldn't be reliably distributed.Neil Slater

2 Answers

18
votes

Just so folks can find the answer (slightly) faster...

If you're creating a gem, and need to add a local dependency (while developing), in your gem's Gemfile, do something like:

source 'https://rubygems.org'

# Specify your gem's dependencies in mygem.gemspec
gemspec

gem "local_gem", path: "/path/to/local_gem"

When you bundle you should see it's now using the local path

Using local_gem 0.1.0 from source at `/path/to/local_gem`
4
votes

Hm...what about adding it in gem's Gemfile in :development group?

UPD: I found similar question, maybe this helps

How to add dependency of a local gem to a rails plugin/engine, in .gemspec file