Is this how tagz.<< is supposed to work? It seems that << and #concat behave differently w.r.t. entity quoting.
correct. escape in the normal case (<<) but concat works directly without quoting.
Thanks. That seems a bit arbitrary since these methods are the same for strings. It's something you just have to remember, but then forget when you come back to the code after a while.
Would it be possible for the object returned by #tagz to have a method, say #literally or #unescaped, which returns an object which delegates back to the original. On the original Tagz::Document, #<< and #concat have the same quoting behavior. On the delegator, they do not quote.
Just a thought...
···
On Apr 2, 2009, at 4:48 PM, Joel VanderWerf wrote:
--
vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407
Thanks. That seems a bit arbitrary since these methods are the same for strings. It's something you just have to remember, but then forget when you come back to the code after a while.
yeah i can see that. i was thinking more of erb's concat - which appends literal objects.
Would it be possible for the object returned by #tagz to have a method, say #literally or #unescaped, which returns an object which delegates back to the original. On the original Tagz::Document, #<< and #concat have the same quoting behavior. On the delegator, they do not quote.
that is kinds of how it works already.
def << string
case string
when Document
super string.to_s
else
super XChar.escape(string.to_s)
end
self
end
and anything returned by tagz *is* a document. you can even do
tagz << tagz('<blink> not escaped </blink>')
maybe i'll just reserver #write of unescaped writing - there needs to be one shortcut i think.
On Apr 3, 2009, at 11:54 AM, Joel VanderWerf wrote:
--
we can deny everything, except that we have the possibility of being better. simply reflect on that.
h.h. the 14th dalai lama