Should these proposals end up in the google code issues database as enhancements?
Robin On Jan 8, 3:45 pm, "Yarko Tymciurak" <[email protected]> wrote: > 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 -~----------~----~----~----~------~----~------~--~---

