我查看了一个适用于其他人的回购中的新提交。我运行了一个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
怎么了?
答案 0 :(得分:1)
Gem.source_index
在Ruby 1.9中已弃用,在Ruby 2.0 *中已删除。我怀疑你现在正在使用Ruby 2.0,这会给你一个确切的错误。
请注意,您确实为它定义了一个setter,但没有为getter定义。
(*从技术上讲,它可能与特定版本的Rubygems而不是Ruby相关联。安装了升级版rubygems的1.9.3安装将达到相同的目的。)