Managing conflicting versions of ruby gems

后端 未结 2 1586
醉梦人生
醉梦人生 2021-01-21 14:05

I am building a framework that loads user provided ruby code. It is basically a plugin mechanism. I want the user provide ruby code to be able to require gems of its own. I i

2条回答
  •  情深已故
    2021-01-21 15:06

    Respectfully disagree with the answer above. Here is how I do it:

    ruby -S gem list my_gem

    `*** LOCAL GEMS ***
    my_gem (1.0.1, 1.0.0, 0.0.2)
    `
    

    ruby -S gem lock my_gem-1.0.0 > locklist.rb

    which generates list of dependencies for a specific version into locklist

    require 'rubygems'
    gem 'my_gem', '= 1.0.0'
    gem 'gem_base', '= 1.0.0'
    gem 'rest-client', '= 1.7.2'
    gem 'savon', '= 1.1.0'
    gem 'addressable', '= 2.3.6'
    gem 'mime-types', '= 1.25.1'
    gem 'netrc', '= 0.11.0'
    

    now you can do load('locklist.rb') which will load a specific version of a gem along with its dependencies. Look ma, no Bundler.

提交回复
热议问题