Rubygems устанавливает старую версию gem
Я работаю в простом приложении sinatra, и я хотел использовать omniauth-steam
драгоценный камень.
В моем Gemfile есть следующее:
source "https://rubygems.org"
gem "sinatra"
gem "tilt"
gem "shotgun"
gem "omniauth-steam"
при выполнении комплекта он устанавливает драгоценные камни, как и ожидалось. Одна из зависимостей omniauth-steam
является omniauth-openid
,
Проблема возникает здесь, когда omniauth-steam
установлен, он захватывает неправильную (я думаю, потому что у него есть старая версия этого драгоценного камня на своих серверах) версии omniauth-openid
, потому что текущая ветвь omniauth-openid
в github ( https://github.com/intridea/omniauth-openid) нет файла steam.rb
внутри lib/omniauth/strategies/
но тот, который я получил от rubygems, имеет его.
В github есть закрытая проблема, которая решает эту проблему ( https://github.com/reu/omniauth-steam/pull/14). Но я получил то же самое omniauth-openid
gem (с steam.rb) при установке пакета
Я пытался сделать следующее:
gem "omniauth-openid", github: "intridea/omniauth-openid"
gem "omniauth-steam"
Он устанавливает omniauth-openid без steam.rb, но при этом:
require "omniauth/strategies/steam"
он не находит драгоценный камень, который был установлен с помощью GitHub
Как я могу сделать omniauth-openid
камень, который я скачал с github, видимый для omniauth-steam
так этот драгоценный камень может найти это? или я должен решить эту проблему, используя другой подход?
заранее спасибо
2 ответа
В вашем Gemfile
Вы можете указать источник драгоценного камня следующим образом:
gem 'omniauth-openid', :git => 'https://github.com/intridea/omniauth-openid.git'
Теперь, когда вы бежите bundle
, гем omniauth-openid будет загружен из указанного репозитория git.
Согласно комплектным документам ( http://bundler.io/v1.9/bundler_setup.html)
Now that your code is available to Ruby, you can require the gems
that you need. For instance, you can require 'sinatra'. If you have a
lot of dependencies, you might want to say "require all of the gems in
my Gemfile". To do this, put the following code immediately following
require 'bundler/setup':
Bundler.require(:default)
Итак, начало моего гемфайла закончилось так
require "rubygems"
require "bundler"
Bundler.require
И сейчас omniauth-steam
находки omniauth-openid
драгоценный камень, загруженный, используя github вместо того, который указан в omniauth-steam
gemspec