Неопределенный метод Ruby с использованием Deprecate.skip_during - PullRequest
1 голос
/ 27 июня 2011

Я пытаюсь установить Gitorious на свой локальный компьютер. Однако я получаю эту ошибку при запуске консольного приложения:

/ USR / Библиотека / рубин / драгоценные камни / 1.9.1 / драгоценные камни / пакетирования-1.0.15 / Библиотека / пакетирования / rubygems_integration.rb: 194: в block in stub_source_index170': undefined method skip_during 'для Bundler :: RubygemsIntegration :: принизить: Класс (NoMethodError)

Код ruby, который выполняется в /usr/lib/ruby/gems/1.9.1/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb:

def stub_source_index170(specs)
      Gem::SourceIndex.send(:define_method, :initialize) do |*args|
        @gems = {}
        # You're looking at this thinking: Oh! This is how I make those
        # rubygems deprecations go away!
        #
        # You'd be correct BUT using of this method in production code
        # must be approved by the rubygems team itself!
        #
        # This is your warning. If you use this and don't have approval
        # we can't protect you.
        #
        Deprecate.skip_during do
          self.spec_dirs = *args
          add_specs(*specs)
        end
      end
    end

Полагаю, ошибка возникает из-за того, что устаревший модуль не загружен или что-то в этом роде ... Я не знаю ruby ​​... но как я могу попытаться исправить это?

У меня есть ruby ​​1.9.1p431 (редакция 2011-02-18 30908) с гемом 1.8.5

Список драгоценных камней:

* МЕСТНЫЕ КАМНЯ *

actionmailer (2.3.5) actionpack (2.3.5) activerecord (2.3.8, 2.3.5) activeresource (2.3.5) activesupport (2.3.8, 2.3.5) действует как помеченный как (2.0.6) сборщик (3.0.0) (1.0.15) хронический (0.3.0) daemon_controller (0.2.6) демоны (1.1.0) diff-lcs (1.1.2) echoe (4.3.1) Eventmachine (0.12.10) Уведомление об исключении (1.0.20090728) factory_girl (1.3.3) fastthread (1.0.7) gemcutter (0.6.1) geoip (0.8.9) мотыга (2.8.0) json_pure (1.5.0) mime-types (1.16) mocha (0.9.10) mysql (2.8.1) oauth (0.4.4) скрепка (2.2.9.2) пассажир (3.0.7) проксимашин (1.2.4) стойки (1.0.1) рельсы (2.3.5) грабли (0.8.7) скидка (1.3.1.1) revo-ssl_requirement (1.1.0) загадка (1.2.2) rmagick (2.13.1) ruby-hmac (0.4.0) ruby-openid (2.1.8) ruby-yadis (0.3.4) rubyforge (2.0.4) musta (2.9.2) state_machine (0.9.4) stomp (1.1) stompserver (0.9.9) tuxml (0.0.1) validates_url_format_of (0.1.1) will_paginate (2.3.15)

Большое спасибо заранее.

* * 1026 Carlos. * * 1027

Ответы [ 2 ]

2 голосов
/ 27 июня 2011

В более новых версиях Rubygems устарели некоторые старые внутренние методы. Вы можете понизить рейтинг Rubygems до gem update --system 1.x.y (например, 1.5.2), чтобы увидеть, решит ли это вашу проблему.

0 голосов
/ 05 октября 2011

Deprecate был помещен в пространство имен Gem :: Deprecate.Вы можете временно исправить это:

Gem::Deprecate.skip_during do
  self.spec_dirs = *args
  add_specs(*specs)
end
...