Rake任务偶尔会失败,未定义错误

时间:2013-04-29 23:54:26

标签: ruby rake

我查看了一个适用于其他人的回购中的新提交。我运行了一个rake任务,该任务调用此代码并引发undefined错误,即使Gem.source_index似乎已定义。

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 个答案:

答案 0 :(得分:1)

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

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

(*从技术上讲,它可能与特定版本的Rubygems而不是Ruby相关联。安装了升级版rubygems的1.9.3安装将达到相同的目的。)