Выпуск 15. Май 2014
← Тестирование интерфейса веб-приложений. Применение WWW::WebKit | Содержание | Интервью с Кристианом Вальде (Christian Walde) →Обзор CPAN за апрель 2014 г.
Рубрика с обзором интересных новинок CPAN за прошедший месяц.
Статистика
- Новых дистрибутивов — 240
- Новых выпусков — 875
Новые модули
Модуль WWW::HKP — это реализация клиента протокола HTTP Keyserver Protocol (HKP), который может использоваться для получения информации или отправки на сервер OpenPGP-ключей.
MetaCPAN::Client — это с чистого листа переписанный MetaCPAN::API, который теперь становится официальным клиентом для API MetaCPAN. В модуле используется объектная система Moo и Search::Elasticsearch как бэкенд для сложных поисковых запросов.
Модуль PLON предназначен для сериализации объектов в Perl-код. Для десереализации достаточно использовать eval(). В отличие от Data::Dumper модуль PLON имеет схожий с JSON интерфейс и по умолчанию не экранирует многобайтовые символы (поддерживается только кодировка UTF-8).
Ещё один легковесный модуль для создания исключений. В $@ помещается объект Throw, который содержит сообщение об ошибке и дополнительные данные, которые вы передали функции в виде хеша. Throw содержит функцию classify для классификации типа ошибки, что может быть удобно при работе совместно с Try::Tiny и подобными модулями. Это выгодно его отличает от Acme::Throw, в котором только один тип ошибки:
(╯°□°)╯︵ ┻━┻
Exception::Chain — это тоже модуль для создания исключений. Особенностью данного модуля является возможность создания вложенных исключений, когда одно исключение вызывает цепочку последующих исключений, каждое из которых содержит какую-либо дополнительную информацию об ошибке. При классификации ошибки модуль может обходить всю цепочку исключений для поиска заданного типа (типов) ошибки.
Ещё один пример того, как в Perl можно сэмулировать любую парадигму программирования. Модуль Homer реализует объектную систему, основанную на прототипах, которая применяется, например, в JavaScript. Вместо классов используются только объекты, на основе которых можно создавать другие объекты, добавлять атрибуты, изменять прототипы объектов.
Когда требуется выполнить несколько вызовов методов у объекта, бывает очень удобно объединить их в цепочку вызовов. К сожалению, не все API предоставляют такую возможность. Модуль Method::Cascade позволяет выполнить каскадный вызов методов для произвольного API:
use Method::Cascade;
use IO::Socket::INET;
cascade(IO::Socket::INET->new('google.com:http'))
->timeout(5)
->setsockopt(SOL_SOCKET, SO_KEEPALIVE, pack("l", 1))
->print("GET / HTTP/1.0\r\n\r\n")
->recv(my $response, 4096);
print $response;
Cogit — это реализация интерфейса к git-репозиториям на чистом Perl. Проект является форком Git::PurePerl. Автора не устроило, что Git::PurePerl основан на Moose (который не является чистым Perl) и имеет неудачное API. В новом проекте объектная система базируется на Moo.
Модуль bare позволяет вам создавать скаляры в виде простых слов без знака сигила $. Подобные скаляры могут использоваться также как и обычные скаляры, им даже можно присваивать значения, но никакой практической пользы, кроме косметического эффекта, это не даёт.
Обновлённые модули
- Starman 0.4009
В новой версии веб-сервера Starman исправлена ошибка, когда сервер отправлял тело ответа в chunked-кодировке при получении HEAD-запроса.
- Mouse 2.2.0
Новый релиз ООП-реализации Mouse исправляет несовместимое с Moose поведение логического типа Bool.
- Math::BigInt 1.9993
Версия модуля на CPAN для работы с большими числами была синхронизирована со всеми последними изменениями дистрибутива в perl blead за последние три года.
- Dancer2 0.140000
В новом релизе веб-фреймворка Dancer2 произошёл переход на семантическое версионирование, что заметно по появившимся четырём нулям в конце номера версии. Многим улучшениям новый релиз обязан Dancer2-хакатону, который прошёл в штаб-квартире Booking.com.
- Search::Tools 1.00
Вышел первый мажорный релиз старых добрых Search::Tools — инструмент для создания приложений для поиска. Новая версия теперь использует объектную систему Moo и Class::XSAccessor.
Selenium::Remote::Driver — это Perl-клиент для Selenium WebDriver, инструмента тестирования интерфейса веб-приложений с использованием браузера с поддержкой JavaScript. В новых апрельских релизах появилась поддержка управления профилями Firefox и завершён перевод модуля на использование Moo.
- Proclet 0.34
В новой версии супервизора процессов Proclet появилась экспериментальная поддержка периодического запуска процессов с узнаваемым API crontab.
- BDB 1.91
Новый релиз модуля асинхронный доступа к Berkeley DB включает исправление для работы на windows с Perl 5.18, декларирована поддержка 6-й версии Berkeley DB.
- HTML::FormFu 2.00
Вышел новый мажорный релиз модуля для создания, рендеринга и валидации HTML-форм HTML::FormFu. Появился метод layout для задания порядка вывода полей элементов, обновились TT-шаблоны, исправлен вывод предупреждений при работе с perl 5.19.x.
- MetaCPAN::API 0.44
Модуль MetaCPAN::API объявлен устаревшим в пользу нового официального клиента MetaCPAN::Client.
← Тестирование интерфейса веб-приложений. Применение WWW::WebKit | Содержание | Интервью с Кристианом Вальде (Christian Walde) →
