2010-10-19 2 views
7

Я был чуть более looking at this question. Первая мысль, которая появилась у меня в голове, заключалась в том, что у рубина должно быть какое-то ключевое слово типа «как», такое как импорт Python, чтобы избежать загрязнения пространства имен. Я немного искал Google, но мне кажется, что wrap your code in modules рекомендуется избегать проблем с пространством имен с ruby. Это кажется проблематичным, потому что, если два модуля имеют конфликтующие имена.Python-like "as" ключевое слово (для пространства имен) в Ruby

Итак, любые ключевые слова типа «как» для рубинов?

+0

Выберите различные названия модулей? – Telemachus

+2

@Telemachus: это не ваш выбор при использовании нескольких библиотек третьей части. –

+0

@Paulo Yup, понял. Однако позвольте мне задать вопрос. Это горячая, не теоретическая проблема? Существуют ли общие, важные библиотеки, которые используют одни и те же имена модулей и классов и топают друг над другом? Это может быть так, но я не сталкивался с этим. – Telemachus

ответ

2

То, что я всегда делаю, - это запуск моих модулей с инициалами моей компании для работы или мои собственные инициалы для моих личных проектов.

module JWG_TwitterTools 
. 
. 
. 
end 
+0

Как указывает @Paulo выше, это работает только в том случае, если исходный код принадлежит вам. – Mark

+0

Отличная точка. Я хочу сказать, что вы можете избежать конфликтов с собственными пространствами имен и избегать конфликтов, когда они используют ваш код, применяя свой собственный префикс к вашим библиотекам и драгоценным камням. Это «передовая практика», которая спасет вас от всякой скорби, и если каждый сделает это, это уменьшит вероятность конфликтов до минимума. – 2010-10-23 22:56:11

2

В рубине 2.0 будет mix (search for mix). Но теперь нет ничего подобного ... Просто используйте полный постоянный путь.

+0

не очень подробно есть, но все еще интересный. Спасибо за ссылку. Я не уверен, что знаю, что вы подразумеваете под «использованием постоянного пути». – Mark

+0

'Foo :: Bar' aka полный путь :-) – Reactormonk

Смежные вопросы