in reply to Re: Templating algorithm - pass in variables vs callback?
in thread Templating algorithm - pass in variables vs callback?

Hmmm - granted, some data needs to be determined ahead of time. But, to answer your questions:

Problems aren't often simple - but their solutions often are ;-)

Replies are listed 'Best First'.
Re^3: Templating algorithm - pass in variables vs callback?
by dragonchild (Archbishop) on Mar 01, 2005 at 16:26 UTC
    • I can accept that all code references are callbacks. That's not an expensive check to do.
    • What should the template engine do if you pass a callback in for a loop variable and the callback returns a scalar after 10 iterations?

      Actually, upon thinking about this, I just realized I have a bug in my templating engine in that I don't check to see if the value in the looping array is a hashref. Thanks! :-)

      So, if the callback doesn't give the engine what it needs, just treat it like a regular failure. Ok ...

    • I'm actually thinking that a callback dying is your damn fault, not the engine's. So, the engine shouldn't catch the errors.
    • Parameters ... the big problem isn't passing them around, it's figuring out how to specify them. I think it's better if you pass in a CODE ref that already has the parameters for your callback specified, at least for now.
    • I think that eval shouldn't be allowed, period.

    Note: While researching this response, I discovered that HTML::Template will do the right thing when passed a CODE reference for a TMPL_VAR or TMPL_IF, just like you want. But, it won't allow a CODE ref for a TMPL_LOOP. I'm sure we could provide a patch for Sam, but I have my own engine to patch. *sighs*

    Being right, does not endow the right to be rude; politeness costs nothing.
    Being unknowing, is not the same as being stupid.
    Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
    Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.