Rubygems не загружаются в IRB или Rails Console

Используя RVM на OSX, я пытаюсь использовать рубиновые драгоценные камни. Однако

require 'rubygems'

возвращает false в консоли IRB и Rails. Просматривая подобные вопросы здесь, я подумал, что это может быть связано с путем Gem против окружения Gem.

MAC-AC028761:Ruby ac028761$ irb
1.9.3-p429 :001 > require 'rubygems'
 => false
1.9.3-p429 :002 > Gem.path
 => ["/Users/ac028761/.rvm/gems/ruby-1.9.3-p429", "/Users/ac028761/.rvm/gems/ruby-1.9.3-p429@global"]
1.9.3-p429 :003 > exit
MAC-AC028761:Ruby ac028761$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.25
  - RUBY VERSION: 1.9.3 (2013-05-15 patchlevel 429) [x86_64-darwin12.3.0]
  - INSTALLATION DIRECTORY: /Users/ac028761/.rvm/gems/ruby-1.9.3-p429
  - RUBY EXECUTABLE: /Users/ac028761/.rvm/rubies/ruby-1.9.3-p429/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/ac028761/.rvm/gems/ruby-1.9.3-p429/bin
  - RUBYGEMS PLATFORMS:
        - ruby
    - x86_64-darwin-12
  - GEM PATHS:
     - /Users/ac028761/.rvm/gems/ruby-1.9.3-p429
     - /Users/ac028761/.rvm/gems/ruby-1.9.3-p429@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

И «Gem.path», и GEM PATHS в «gem env» одинаковы, так что проблема не в этом. Не могу понять, как это исправить.


person absessive    schedule 12.06.2013    source источник


Ответы (2)


Поскольку Ruby 1.9 rubygems автоматически требуется интерпретатору при его запуске, поэтому нет необходимости запрашивать его снова.

$ irb
irb> $LOADED_FEATURES.grep /rubygems.rb/
# => ["/usr/lib/ruby/1.9.1/rubygems.rb"]
irb> defined?(Gem)
# => "constant"
person toro2k    schedule 12.06.2013
comment
Спасибо, это объясняет это, потому что я определенно могу использовать свои драгоценные камни внутри IRB и консоли Rails, это «ложь» было совершенно неверным. - person absessive; 12.06.2013

require может вернуть false, если файл, который вы пытаетесь запросить, уже требуется.

person Sachin Singh    schedule 12.06.2013