Как разрешается конфликт имён в Ruby?

Рейтинг: 2Ответов: 2Опубликовано: 16.02.2011

Ruby - удобный язык, но есть и косяки.

Меня беспокоит, что модули подключаются подобно сишным #include. Не до конца ясно, как разрешать конфликты имён.

Если подключать два файла с одинаковыми именами методов/классов, то они просто перетираются последним. Хотя это бывает удобно, но с подключаемыми файлами лучше вести иначе.

Есть ключевое слово module, похоже на пространство имён. И с помощью него можно спастись от затирания. Но я провёл эксперимент: если объявить модули, то при подключении модулей с одинаковыми именами происходит молчаливое перетирание функций и классов с одинаковыми именами.

Конечно есть такой вариант: весь распространяемый код должен содержаться в модуле с уникальным названием.

Собственно вопрос. Как в Ruby принято решать такие проблемы? Что ещё мне нужно знать о модульной системе Ruby?

Ответы

Ответов пока нет.