2015-05-01 95 views
0

我正在一个简单的sinatra应用程序,我想用omniauth-steam宝石。Rubygems安装老版本的宝石

我在我的Gemfile如下:

source "https://rubygems.org" 

gem "sinatra" 
gem "tilt" 
gem "shotgun" 

gem "omniauth-steam" 

做时将其捆绑安装的宝石如预期。 omniauth-steam的依赖关系之一是omniauth-openid

问题来到这里,当omniauth-steam安装,它抓住了错误的(我猜是因为它有宝石在他们的服务器上的旧版本)的omniauth-openid版本,因为在github上的omniauth-openid当前分支(https://github.com/intridea/omniauth-openid)没有按”没有文件steam.rblib/omniauth/strategies/之内,但是我从rubygems得到的文件确实有。

在github中有一个封闭的问题解决了这个问题(https://github.com/reu/omniauth-steam/pull/14)。但我在做捆绑安装时,得到了相同的omniauth-openid宝石(含steam.rb)

我试着做到以下几点:

gem "omniauth-openid", github: "intridea/omniauth-openid" 
gem "omniauth-steam" 

它确实安装omniauth-的OpenID不steam.rb,但这样做的时候:

require "omniauth/strategies/steam" 

它不定位已经使用github上

安装了宝石,我怎样才能使omniauth-openid的宝石,我给G下载ithub,omniauth-steam可见,所以这个宝石可以找到?还是应该通过另一种方法解决这个问题?现在

gem 'omniauth-openid', :git => 'https://github.com/intridea/omniauth-openid.git' 

当您运行bundle的omniauth-openid的宝石会从指定的下载:

在此先感谢

+0

看这里http://bundler.io/v1.3/gemfile.html – inye

+0

@inye我真的应用程序回顾你的链接。它实际上帮助我了解如何使github下载的宝石可见 – JavierQQ23

+0

太棒了! @ JavierQQ23。请将您的答案标记为正确。 – inye

回答

0

在你Gemfile,你可以像这样指定的宝石的来源git存储库。

+0

谢谢,我真的这样做了,它下载了宝石。我的问题是“omniauth-steam”没有找到这个宝石,并且使用了它自己的Gemspec中的宝石。 – JavierQQ23

0

据包文档(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) 

所以我的Gemfile年初弄成这个样子

require "rubygems" 
require "bundler" 

Bundler.require 

现在omniauth-steam发现使用github上,而不是一个是omniauth-openid宝石下载在omniauth-steam指定gemspec