hehe... I think Robin should send Robin's proposals ;-)

On Thu, Jan 8, 2009 at 3:42 PM, Timothy Farrell <[email protected]> wrote:

>
> Dude...wait, what?
>
> what proposal?
>
> mdipierro wrote:
> > Me too but I need more time to look into details... today is not the
> > optimal day. Tim, could you email me your proposals so that it does
> > not get list in the list?
> >
> > Massimo
> >
> > On Jan 8, 2:54 pm, "Yarko Tymciurak" <[email protected]> wrote:
> >
> >> Yep, Robin - saw your other post on this.... I'm liking the direction
> this
> >> is going...  thanks!
> >> Yarko
> >>
> >> On Thu, Jan 8, 2009 at 1:36 PM, Robin B <[email protected]> wrote:
> >>
> >>
> >>> Very true.  This is more general than t2, I just dislike adding so
> >>> many symbols to the global namespace, so this could be added to a
> >>> helpers.* object if it existed.
> >>>
> >>> The reason for this proposal is that currently you cannot import
> >>> actions easily:
> >>>
> >>> # in controllers/default.py
> >>> from modules.crud import create
> >>>
> >>> The create action will not be found because actions are currently
> >>> found with a regex.
> >>>
> >>> Robin
> >>>
> >>> On Jan 8, 1:19 pm, "Yarko Tymciurak" <[email protected]> wrote:
> >>>
> >>>> Let me double check to make sure:
> >>>>
> >>>> this behavior -  non-argumented controllers being exposed / accessible
> >>>>
> >>> from
> >>>
> >>>> a client - is not (only) t2; this is general web2py behavior,
> >>>>
> >>>> correct?
> >>>>
> >>>> On Thu, Jan 8, 2009 at 1:15 PM, Yarko Tymciurak <[email protected]>
> >>>>
> >>> wrote:
> >>>
> >>>>> yep - after reading that thread Robin pointed to at the head of this
> >>>>> thread,  the space behavior definitely looks like an expedient
> hack...
> >>>>>
> >>>>> and reading the response from Massimo there:
> >>>>> "If you have
> >>>>> function that does not take *arguments* and you still don't want to
> >>>>> expose it you can also use a trick..."
> >>>>>
> >>>>> I'm with Robin - forget the "tricks" and be explicit... but, as I
> >>>>> suspected, the usual intent is expose no-argument controllers, so the
> >>>>> exceptional case calls for a decorator, a better name than I
> originally
> >>>>> posted:
> >>>>>
> >>>>> @not_exposed
> >>>>> def  myfunc():
> >>>>>   #blah, blah, ...
> >>>>>
> >>>>> On Thu, Jan 8, 2009 at 10:55 AM, Robin B <[email protected]> wrote:
> >>>>>
> >>>>>> Massimo,
> >>>>>>
> >>>>>>> Not sure I undestand. This goes in a module? not a model?
> >>>>>>>
> >>>>>> The example shows that it can go in either or both.
> >>>>>>
> >>>>>> You could put it in a module and then import it into a controller to
> >>>>>> import actions into one specific controller.  You could put it in a
> >>>>>> model to add an action to all controllers.
> >>>>>>
> >>>>>> The first time a controller is requested, the controller is exec'ed,
> >>>>>> the resulting environment is searched for functions of no args that
> >>>>>> have the specific attr that was set by the decorator, these actions
> >>>>>> are merged with the actions found with the regex.  All the possible
> >>>>>> controller_action.pyc is compiled and stored like usual, now you can
> >>>>>> call actions that were created in the models or imported from a
> module
> >>>>>> (crud, resources, admin, stats etc).
> >>>>>>
> >>>>>> Robin
> >>>>>>
> >>>>>> On Jan 8, 7:20 am, mdipierro <[email protected]> wrote:
> >>>>>>
> >>>>>>> Not sure I undestand. This goes in a module? not a model?
> >>>>>>>
> >>>>>>> On Jan 8, 12:03 am, Robin B <[email protected]> wrote:
> >>>>>>>
> >>>>>>>> Controller functions taking arguments, or functions with an extra
> >>>>>>>> space like def index (): are hidden:
> >>>>>>>>
> >>> http://groups.google.com/group/web2py/browse_thread/thread/35c15761dc.
> >>>
> >>>>>> ..
> >>>>>>
> >>>>>>>> This is good that you can hide functions somehow, but using only a
> >>>>>>>> regex to detect controller functions requires people to copy-paste
> >>>>>>>> common actions into every controller (bad).
> >>>>>>>>
> >>>>>>>> Could a controller be loaded, and its symbols that are functions
> >>>>>>>> checked for a tag (attribute) indicating that they are also
> >>>>>>>>
> >>> exposed.
> >>>
> >>>>>>>> This way you can import actions/functions in the models and in the
> >>>>>>>> individual controllers.
> >>>>>>>>
> >>>>>>>> Proposal: continue to use the regex for backwards compatibility,
> >>>>>>>>
> >>> but
> >>>
> >>>>>>>> also expose functions that are explicitly tagged as exposed by
> >>>>>>>>
> >>> some
> >>>
> >>>>>>>> decorator.
> >>>>>>>>
> >>>>>>>> Examples:
> >>>>>>>>
> >>>>>>>> # in models/0.py
> >>>>>>>> @T2.decorators.expose
> >>>>>>>> def stats():
> >>>>>>>>   return 'stats'
> >>>>>>>>
> >>>>>>>> # in modules/crud.py
> >>>>>>>> @T2.decorators.expose
> >>>>>>>> def update():
> >>>>>>>>   return 'update'
> >>>>>>>>
> >>>>>>>> # in controllers/posts.py
> >>>>>>>> from modules.crud import *
> >>>>>>>>
> >>>>>>>> It would be fully backwards compatible!
> >>>>>>>>
> >>>>>>>> Feedback?
> >>>>>>>>
> >>>>>>>> Robin
> >>>>>>>>
> > >
> >
>
> --
> Timothy Farrell <[email protected]>
> Computer Guy
> Statewide General Insurance Agency (www.swgen.com)
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" 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/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to