This seems like a lot of extra work for a relatively minor issue, and it 
might significantly affect performance - code needs to be really tight 
when dealing with the buffer stuff. I really think the best way to deal 
with this is to monkeypatch a post-processor into #render.

- Nathan

Wincent Colaiuta wrote:
> On 8 feb, 15:32, "Nathan Weizenbaum" <[EMAIL PROTECTED]> wrote:
>   
>> This is why we use the newline escapes: nested templates don't touch them at
>> all. Note that your solution still falls down if you have a three-deep
>> nested template.
>>     
>
> I hadn't tested that so I'll take your word for it. I imagine I could
> avoid that by echoing the markers through rather than suppressing
> them; I probably should have done that anyway. Of course, even if it
> works with any level of nesting it's still a hack.
>
> I have another nascent idea that may work and which I like much better
> than this hacky one I've shown so far. Basically if I can train
> push_script to accept an Array parameter rather than a straight String
> then it could act in a way that preserves whitespace when appropriate
> and leaves it untouched otherwise through any number of nested
> template levels.
>
> Basically it would act as follows:
>
> * if param is a String, act just like it does now
> * if param is an Array, iterate and handle each item as it does now
> * if param (or any item during iteration) is a special String
> subclass, say PreservingString, suppress the tabulation and instead of
> appending the result to the existing @buffer, start a new one marked
> as preserving whitespace and stick the result in there (not sure yet
> whether this should be a Haml::Buffer subclass or just a normal
> instance with an attribute set)
> * this would be accompanied by a helper method that instantiates one
> of these PreservingString instances
>
> Then elsewhere in the code (at the Engine level I guess, haven't
> explored it yet) I'd need to make changes so that it was prepared to
> handle multiple buffers instead of just one. Evidently I'd need to
> change the code wherever it assumed a single buffer and replace that
> with an Array. Probably haven't explained my idea very well but
> hopefully you get some idea of what I'm suggesting.
>
> It's just an idea which I haven't tried to put into practice yet so it
> might be flawed.
>
> Cheers,
> Wincent
>
>
> >
>
>   


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Haml" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/haml?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to