spleenjack
Mojo Perl Обновил Mojolicious. Обнаружил, что для некоторых методов Test::Mojo удалена возможность указать свой description. Долго думал, но смысла в таком удалении не нашел.
spleenjack
Mojo Perl Пытался построить цепочки вложенных роутов с условиями по методу запроса — не вышло. С такой цепочкой: $self->routes->waypoint('/user/:user')->via('get')->to('user#read')->route('/profile')->via('post')->to('profile#create') — POST-запрос до user:user/profile никогда не дойдет. Приходится делать два отдельных роута.
spleenjack
Mojo JSON test Perl Решил добавить проверку на тип значения в распарсенном JSON (число или строка). Test::Deep::num и str тип зачем-то меняют. Выяснилось, что можно проверять по наличию флагов IOK, NOK и POK у скаляра. В итоге написал две реализации: чистый XS и с использованием B::Flags. Накалякал 52 теста, вроде работает. Не покидает чувство, что изобрел велосипед. (Спасибо @mvuets за помощь!) Кстати, оказалось, что Mojo::Json из чисел делает строки :-/
spleenjack
Perl Первый раз в жизни (побейте меня!) пишу тесты. Черт, это даже круче, чем я себе представлял. Буду привыкать. Test::Mojo отличная штука.
spleenjack
Perl rdbo Заборол Rose::DBx::AutoConnector и кеширование коннектов. Проблема была в том, что при инициализации модуля параметры доступа к базе мне неизвестны, поэтому пришлось сбрасывать кеш иделать еще один фокус после получения этих параметров уже в run-time. На очереди желание связать DBIx::Connector с RDBO.
spleenjack
perlbrew Perl Пытаюсь сделать архивчик, который содержит в себе уже установленный перл с помощью perlbrew, чтобы разворачивать его на других машинах быстро и без установки. Так ведь хер тебе! Путь, куда ты его поставил, хард-кодится. И если архив разворачивать в другой директории, то перл будет пытаться лезть в захардкоженную. Может это как-то и исправляется (не стал дальше ковырять), но осадок остался.
spleenjack
cpanm Perl Начинается. cpanminus не может поставить конкретную версию модуля: при указании cpanm FCGI-0.67 на cpan не находит, в mymeta.yml "FCGI: == 0.67" не понимает.
spleenjack
Mojo Perl Пытаюсь понять, как нужно собирать ответ сервису, который дает некое API разным клиентам (сервис без web-морды). Учитывая то, что он часто вовращает какой-то сериализованный ответ (JSON, XML) хочется собирать его прямо в контроллере, т.к. это быстрее. С другой стороны — JSON не равнозначен XML — и как в этом случае выдавать ответ? Шаблоны? Но это медленнее, да и ручками слишком много нужно делать — разрисовывать все хеши, массивы, поля, не забывая о фильтрации, чтобы окончательный ответ был валидным документом.
spleenjack
Mojo Perl Еле-еле запустил сервер под fcgi_prefork в нужном окружении определенного юзера. Обнаружил, что --requests он не поддерживает, хотя и наследуется от Mojo::Server::Daemon. Надо будет поковыряться.