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

Другие вопросы по тегам