From theathlet at yandex.ru Mon Nov 4 05:04:41 2013 From: theathlet at yandex.ru (TheAthlete) Date: Mon, 04 Nov 2013 15:04:41 +0200 Subject: [Kiev-pm] =?utf-8?b?0JfQsNC00LDQvdC40LUg0LrQvtC90YTQuNCz0YPRgNCw?= =?utf-8?b?0YbQuNC4IERhbmNlciDRgSDQv9C+0LzQvtGJ0YzRjiBzZXQ=?= In-Reply-To: References: Message-ID: У меня тоже устанавливается, но при выводе в лог (если, например, нужно доработать модуль Dancer::Template::), заметил следующее поведение: app.pl #!/usr/bin/env perl use FindBin; use lib '/path/to/custom/Dancer-Template-Haml/lib'; use feature 'say'; use Dancer; use Plack::Builder; use Data::Section::Simple qw/get_data_section/; use Data::Dumper; my $vpath = get_data_section; # Develop settings set strict_config => 1; set global_warnings => 1; set warnings => 1; set traces => 1; set show_errors => 1; set auto_reload => 1; set log_path => './logs'; set log_file => 'dev.log'; set logger => 'file'; set log => 'core'; set apphandler => 'Debug'; set charset => 'UTF-8'; set template => 'haml'; set serializer => 'JSON'; set engines => { haml => { cache => 1 } }; get '/' => sub { 'hello' }; dance; ----------------------- Dancer/Template/Haml.pm: ... sub init { my $self = shift; Dancer::Logger::info( "Self init: ". Dumper($self)); } ... ----------------------- ./logs/dev.log [6653] info @0.000010> Self init: $VAR1 = bless( { 'name' => 'haml', 'config' => {}, 'type' => 'template' }, 'Dancer::Template::Haml' ); in /path/to/custom/lib/Dancer/Template/Haml.pm l. 23 А если поместить set engines => { haml => { cache => 1 } }; выше set log_path => './logs'; set log_file => 'dev.log'; set logger => 'file'; set log => 'core'; то все выводится: set engines => { haml => { cache => 1 } }; set log_path => './logs'; set log_file => 'dev.log'; set logger => 'file'; set log => 'core'; ----------------------- ./logs/dev.log [6663] info @0.000010> Self init: $VAR1 = bless( { 'name' => 'haml', 'config' => { 'cache' => 1 }, 'type' => 'template' }, 'Dancer::Template::Haml' ); in /path/to/custom/lib/Dancer/Template/Haml.pm l. 23 From chesnokov.ilya at gmail.com Mon Nov 4 15:02:40 2013 From: chesnokov.ilya at gmail.com (Ilya Chesnokov) Date: Tue, 5 Nov 2013 03:02:40 +0400 Subject: [Kiev-pm] =?utf-8?b?0JfQsNC00LDQvdC40LUg0LrQvtC90YTQuNCz0YPRgNCw?= =?utf-8?b?0YbQuNC4IERhbmNlciDRgSDQv9C+0LzQvtGJ0YzRjiBzZXQ=?= In-Reply-To: References: Message-ID: 2013/11/4 TheAthlete > > [6653] info @0.000010> Self init: $VAR1 = bless( { > 'name' => 'haml', > 'config' => {}, > 'type' => 'template' > }, 'Dancer::Template::Haml' ); in > /path/to/custom/lib/Dancer/Template/Haml.pm l. 23 > > А если поместить > > set engines => { haml => { cache => 1 } }; > > выше > > set log_path => './logs'; > set log_file => 'dev.log'; > set logger => 'file'; > set log => 'core'; > > то все выводится: > Да, интересное поведение. Насколько я понял, сохранится конфигурация или нет, зависит от расположения параметров template и engines относительно друг друга. Если engines сначала, то конфиг шаблонизатора сохраняется, в противном случае не сохраняется. Видимо, это из-за того, что при установке параметра template срабатывает хук, который создаёт объект шаблонизатора и инициализирует его текущим конфигом. Если конфиг engines на данный момент не задан, то инициализируется пустым конфигом. При использовании config.yml в момент вызова этого хука конфиг уже полностью загружен, поэтому всё сохраняется. Короче, надо бы зарепортить. P.S. У Вас прямо талант находить баги. -- Best regards, Ilya Chesnokov ----------- ���� ���----------- ��� �����HTML �� �����hellip; URL: