Yarko, I just remind you my attention span is 5 lines top. ;-)
Good that Thadeus seems to be able to read further down.

On May 6, 12:02 pm, Yarko Tymciurak <resultsinsoftw...@gmail.com>
wrote:
> On May 6, 10:59 am, Thadeus Burgess <thade...@thadeusb.com> wrote:
>
> > Ok. But the purpose of layout.html is to define the "layout". It is
> > effectively the parent who pays for the house and determines what room
> > the child gets.
>
> I think that is the wrong metaphor:
>
> When you are handed the keys (called by main()), it is your house.
> The layout is by the architect / builder (in this case, the app says
> here's my model for a view.... )
>
> You pick the model, and decorate it as you want; even add bedrooms
> etc. -  skin it.
>
> I think that is a more appropriate metaphor...
>
> In any case,  responsibility is the key anchor here:  who is
> responsible for collecting the view (decorating the house, if you
> will) --- who got "called" by main?   not layout ---- default/index;
>
> if there were no default/index, main would have asked the "generic
> standin" to take responsibility for generating this view:   generic
> (which, as it is in the default app, is given the "architect", the
> helper in this construction, of layout - but _your_ app could pick
> another file name as the builder - get it?  you could even change
> builders during construction --- i.e. customize views by extending a
> different file;  then enhance / decorate that particular view with
> minor tweaks.
>
> Does this make more sense?    The "layout == parent" metaphor I don't
> think is the correct one; the "responsibility lies with who was called
> - they pick the builder (i.e. the {{extends}})  is more to the point.
>
>
>
> > I don't think I am quite fully grasping the concept that you have.
> > Could you provide me with a code example of how you would like it to
> > look, and I hope that will give me a better idea of what you are
> > thinking about.
>
> I am certain of this:  the metaphors, the structures, and the
> orthogonality of operations and behaviors likely to be needed (what
> should be in the mix)....
>
> I am less clear on the code, because - Thadeus - as you ask questions,
> and I try to answer, I realize issues.
>
> For example,  the concepts of   $block, �...@block, &block    I am fairly
> certain are needed concepts;  I am less certain about the notation
> ( $block particularly)...
>
> Given the excellent suggestions you've made in response to my
> "thinking out loud", I would ask you how you would like to write the
> code.
>
> I like (for example)  block.super notation.
>
> Have a look at the named tuple library, and see if you were to use
> that (I'm not necessarily suggesting you do - but try it, for the
> suggestion of notations that could be used).   If you could actually
> use the notation directly (i.e. from a named.tuple object)  of
> block.* to just give back the argument of that {{block.something
> pair}}, how would you name:
>
> - block.super ?
> - block.position  (change the address of the block in the tree, not
> it's content)
> - block.contents (override the value of a block, but not it's current
> position in the tree)
> - block.decorate  (ammend the value of a block, but only decorate it's
> value; do not change it's current position)
>
> This suggests at least one more useful idiom:
>
> - block.exists  (only do the enclosed if the named block exists)
>
> ...i.e. don't decorate something if the user preferences said "I don't
> want to display my calendar";  but if it is there, apply the colors to
> it.
>
> Now that I've written this, I like this notation, the look of it.
> ........
>
> NOW I am starting to see skins, and dynamic ones.  It will be up to
> the application programmer to pick the right time to change builders
> to most easily achieve results:
>
> i.e. who will I extend?
>
> and with the easy-css layout style content way of gross positioning of
> major page pieces,  how will I extend?
>
> and with this:  how will I "paint my house"  ---- i.e.,  you will not
> want to do too much in trying to layout the page from within, say, an
> index file ---- but with this, you will have all the control you need
> to go as far as you think is useful for you dynamically, before it
> would just be simpler to change your extend file.
>
> I like this.
>
> But I also think it is experimental - and once we have a prototype
> that will render something, we will need to gain some experience -
> play around with it (obviously, I will want to  - I am very interested
> to see how this will affect ability of an app to apply skinning... but
> I'll look at basics, and stuff under the covers;  others will need to
> play / try too).
>
> - Yarko
>
>
>
> > --
> > Thadeus
>
> > On Thu, May 6, 2010 at 2:45 AM, Yarko Tymciurak
>
> > <resultsinsoftw...@gmail.com> wrote:
> > > Location-only modification:
> > > -1-  {{&block  name}}  (reminsicent of C's "address of", to suggest
> > > "this location ....
> > >     This block would insert it's location in the emit tree;  it would
> > > not alter the token's value
> > >      It would probably make sense to not have an {{end}} for this
> > > occurrence.
> > >      Let's call having an {{end}} fore this an error!
>
> > > Value-only modification:
> > > -2- {{$block name}}  (reminiscent of shell notation to emit value)
> > >     This block would alter the token for this block, but would not
> > > alter the token's position on the emit tree.
> > >      This block would require and {{end}}
>
> > > I have to think about this one, but think it is needed...
> > > -3- �...@block name}} - this is the last uncovered case (reminiscent of
> > > pythons wrapper notation)
> > >     This block would alter the value of the token for this block,
> > >      but would not alter the  token's position on the emit tree.
> > >      While syntactically not required, stylistically, this token
> > > belongs inside the {{extend}} block

Reply via email to