[Dancer-users] bug with multiple "template" calls ?

Nick Knutov mail at knutov.com
Thu Dec 15 22:52:12 CET 2011


Hello,

why was the old behavior changed?

Don't you think the new way with 3 lines of code is too complex?

ps: I actively use 'template' to generate config files and emails too. 
Mostly (but not only) in "use Dancer ':script'" mode.


16.12.2011 3:44, damien krotkine пишет:
> Hi Assaf,
>
> Well, the standard way of doing waht you wish to do is to use these
> line of codes instead of using template :
>
>      my $template_engine = engine 'template';
>      my $html = $template_engine->apply_renderer(...);
>      my $html_with_layout = $template_engine->apply_layout($html);
>
> I can see that the new release is causing you a problem, as it breaks
> something that used to work.
>
> I'll see with Sawyer and other core devs what we do. On top of my head
> what we can do is either :
> - just amend the documentation, and advertise a bit the potential issue
> - change back the behaviour of template, and re-release
> - perform the old behaviour if 'template' is called in a contexte that
> is anything but 'void', and issue a warning
>
> any other idea ?
>
> On 15 December 2011 20:18, Assaf Gordon<gordon at cshl.edu>  wrote:
>> Hello,
>>
>> In my dancer application, I'm using "template" to create documents that are not necessarily displayed as HTML (they are message bodies that will be sent with Dancer::Plugin::Email).
>>
>> I have one (or more) calls to "template" to create the email text.
>> and the last "template" creates the HTML page.
>>
>>
>> Conceptual example:
>> ====
>> get "/hello" =>  sub {
>>         my $name = params->{name};
>>         my $email = params->{email};
>>
>>         ## Email to be sent to the user, NOT rendered as HTML.
>>         my $msg = template("email_body", { name =>  $name }, { layout =>  undef } ) ;
>>         my $subject = template("email_subject", { name =>  $name }, { layout =>  undef } ) ;
>>         email { message =>  $msg,
>>                 subject =>  $subject,
>>                 to =>  $email } ;
>>
>>         ## The welcome page, sent back to the user
>>         return template("welcome", { name =>  $name, email =>  $email } ) ;
>> }
>> =====
>>
>> With Dancer version 1.3079_3, it worked perfectly.
>> After upgrading to 1.3090, the result of the first template is always returned to the user - what changed ? any ideas/suggestions are welcomed.
>>
>> Thanks,
>>   -gordon
>> _______________________________________________
>> Dancer-users mailing list
>> Dancer-users at perldancer.org
>> http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
> _______________________________________________
> Dancer-users mailing list
> Dancer-users at perldancer.org
> http://www.backup-manager.org/cgi-bin/listinfo/dancer-users

-- 
Best Regards,
Nick Knutov
http://knutov.com
ICQ: 272873706
Voice: +7-904-84-23-130


More information about the Dancer-users mailing list