Подтвердить что ты не робот

Разница между драгоценным камнем и требованием (требуется open-uri)

Я просто хотел понять для себя.

Я использую nokogiri gem (для разбора HTML). Если бы я получил право открывать URL-адреса, мне нужно использовать метод из gem 'open-uri'.

Но когда я включаю его в свой Gemfile (на машине разработчика Windows):

gem 'open-uri' - во время установки пакета появляется ошибка, что он не может найти драгоценный камень.

Итак, если я использую require 'open-uri' - его работу.

Так можно объяснить, что происходит?

4b9b3361

Ответ 1

Вы используете bundler для своих заимствований драгоценных камней, и вы делаете это правильно, но OpenUri является частью стандартной библиотеки Ruby. Вот почему вам нужно только потребовать его, если вы хотите использовать его в своем коде.

Ответ 2

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

A RubyGem - это программный пакет, обычно называемый "жемчужиной". Драгоценные камни содержат упакованное приложение или библиотеку Ruby. Программное обеспечение RubyGems позволяет вам легко загружать, устанавливать и манипулировать драгоценными камнями в вашей системе.  - Что такое Gem?:

Затем Gemfile используется bundler для установки указанных драгоценных камней.

open-uri не является драгоценным камнем, а является частью стандартной библиотеки Ruby, поэтому ее нужно просто требовать.