Является ли `require "rubygems"` возвращающим `false` нормально?
Требующий "rubygems"
дает false
, но требующий "appium_lib"
дает true
, То есть,
require 'rubygems' # => false
require 'appium_lib' # => true
Это нормально? Это не то же самое, что пытаться требовать чего-то, чего на самом деле не существует, то есть:
require 'does_not_existxxxxxxx' # => LoadError: cannot load such file -- does_not_existxxxxxxx
2 ответа
Это должно быть хорошо. Повторный запрос файла приводит к ложному ответу. С load
это другая вещь, которая бы load
(require
) файл каждый раз, когда он запрашивается.
Так что это просто означает, что IRB начинается с rubygems
уже требуется, что не удивительно.
Например, load
интенсивно используется в режиме разработки Rails, поэтому ваши изменения могут быть немедленно показаны.
Начиная с Ruby 1.9 автоматически требуются рубины.
Когда ты require
драгоценный камень, на самом деле вы просто помещаете каталог lib этого драгоценного камня в ваш $ LOAD_PATH. Если он возвращает false, это означает, что он уже находится в вашем $ LOAD_PATH.