2013-04-29 66 views
0

我检查了一个适用于其他人的新回购协议。我运行一个rake任务,调用此代码并引发undefined错误,即使Gem.source_index似乎已被定义。Rake任务偶尔失败,未定义错误

module Gem 
    puts "in module Gem" 
    def self.source_index=(index) 
    puts "defining the source index" 
    @@source_index = index 
    end 
end 

module Rails 
    class GemDependency < Gem::Dependency 
    attr_accessor :lib, :source, :dep 

    def self.add_frozen_gem_path 
     puts "Oh hi there" 
     puts "the source index is " + Gem.source_index // ERROR HERE 
    end 

输出是

in module Gem 
Oh hi there 
rake aborted! 
undefined method `source_index' for Gem:Module 

有什么不对?

回答

1

Gem.source_index在Ruby 1.9中已弃用,并在Ruby 2.0 *中删除。我怀疑你现在在使用Ruby 2.0,这会给你一个确切的错误。

请注意,您确实为它定义了一个setter,但不是一个getter。

(*技术上讲,它可能是依赖于特定的版本RubyGems的,而不是红宝石。一1.9.3安装与升级RubyGems的安装将达到同样的事情。)

+1

这个工作!我做了'rvm list',然后'rvm使用ree-1.8.7-2012.02' – 2013-04-30 02:14:20

相关问题