Как запросить модуль в качестве более короткой ссылки в Ruby - PullRequest
0 голосов
/ 24 февраля 2020

В Python я могу импортировать модуль и назначить ему более короткую ссылку, например:

import long_library_name as l

Есть ли способ сделать что-то подобное в Ruby?

require 'long_library_name' as l

1 Ответ

3 голосов
/ 24 февраля 2020

Нет, нет.

Ruby require не работает ничего подобного Python или JavaScript, это больше похоже на C * include , Все, что вы делаете, это загружаете файлы, предоставляемые long_library_name в память, независимо от того, какие константы (или константы), которые открывают эти файлы, предоставляются глобально с использованием любого имени, которое выбирает автор библиотеки.

Это просто условно, что большинство гемы с именем (например) "foo_bar" представляют единственную константу верхнего уровня с именем FooBar. Тот же самый гем может выставить константу верхнего уровня с именем что угодно, или много констант с именем что угодно.

Все это говорит о том, что вы можете присвоить значение любой существующей константе новой константе:

ARB = ActiveRecord::Base

Но это очень ненормально в Ruby, и это может нарушить много вещей. Особенно в Rails, он будет ломать многие вещи странным образом, включая горячую перезагрузку кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...