Возможно кто-то сталкивался с проблемой.
Пишу шаблон для создания плагинов jQuery.
Имя плагина много где используется:
1. Непосредственно само добавление в пространство имен $.fn;
2. Объявление и удаление пространства имен событий;
3. Добавление и удаление пространства имен data;
и т.д.
Дополнительные сложности:
1. Хочется проверять, что данное имя уже не пересекается с другими плагинами и, что плагин не подключен на странице дважды.
2. Чтобы IDE (Idea) определяла в других js-файлах, что имя такое существует, если просто написать
$.fn[pluginName] = ...
то она будет считать, что функции $().pluginName() нет (т.е. подчеркивать в исходниках)
3. Главное хочется, чтобы имя плагина задавалось минимальное число раз, в идеале 1, и не нужно было искать по всему шаблону "где еще переименовать".
Пока пришел вот к такой конструкции с двумя определениями "delayKeyup"
var name = 'delayKeyup';
$.fn. delayKeyup = !(name in $.fn) ? {} : (function(){throw new Error('Plugin name ' + name + ' already reserved or you try iteratively connect plugin');})();
(function install(pluginName) {
$.fn[pluginName] = ...
})(name);
Может быть кто-то сталкивался с более элегантным решением?