Jasmine и юнит тесты

Jasmine на данный момент одна из самым популярных библиотек для организации юнит тестирования JavaScript.

На официальном сайте есть довольно хороший быстрый старт с примерами, но если все же хочется на русском и с комментариями – то добро пожаловать под кат.

Continue reading

Создаем юнит-тесты с phantomjs

Для начала скажу что phantomjs – это совсем не библиотека для юнит-тестов, как вы могли подумать; phantomjs – это возможность работать с WebKit из консоли используя JavaScript и без браузера.

Интересно? Тогда идем под кат.

Continue reading

Автоматический деплой проекта из bitbucket с помощью javascript

Наш текущий проект мы держим на bitbucket и вот стал вопрос о автоматической выгрузке кода при каждом пуше в репозиторий. Попробуем сделать это на JavaScript.

Continue reading

Открыть текстовый файл в cp1251 в gedit

Стала проблема открытия кириллицы, созданной под виндой(соответственно в cp1251) на убунте. Перепробовал несколько редакторов и в итоге наткнулся на встроенную возможность gedit. Оказывается там можно задавать самому, в какой кодировке открывать файл:

 

express фреймворк для node.js

Если вы давно пишете на JavaScript, вы понимаете комфорт использования jQuery. Так же и для серверной стороны: когда вы создаете приложение под node.js, удобно будет использовать express фреймворк модуль (npm install express). Хотел написать пост с разбором базовых задач на нем, но похоже офсайт таки разродился нормальными примерами.

Настраиваем JSHint для WebStrorm

JSHint – бесплатный инструмент для проверки JavaScript кода на соответствие стандартам оформления кода и внутри командным соглашениям. Возник как ответвление от JSLint, который разработал автор JSON формата Дуглас Крокфорд. Инструмент не имеет фиксированных правил и легко конфигурируется под конкретные требования к коду.

Continue reading

Правильно используем jQuery ON

Делаю репост части статьи с харбра, к которой не раз обращался.

bind, live и delegate могли вести себя непредсказуемо при использовании вместе. Например, $(document).unbind(‘click’) убирал все live(‘click’)-события со всего документа.
Новое API событий .on() and .off() призвано как-то унифицировать систему создания обработчиков событий:

Старое API Новое API
$(elems).bind(events, fn) $(elems).on(events, fn)
$(elems).bind(events, { mydata: 42 }, fn) $(elems).on(events, { mydata: 42 }, fn)
$(elems).unbind(events, fn) $(elems).off(events, fn)
$(elems).delegate(events, selector, fn) $(elems).on(events, selector, fn)
$(elems).undelegate(events, selector, fn) $(elems).off(events, selector, fn)
$(selector).live(events, fn) $(document).on(events, selector, fn)
$(selector).die(events, fn) $(document).off(events, selector, fn)