hi alessandro,

out of curiousity, does telling "hey, if there's a url mapped for this
controller action serve it else map this controller action as the
url." affecting performance that much?

On Jul 10, 1:42 pm, Alessandro Molina <[email protected]>
wrote:
> Actually the future TG versions are getting rid of routes by default
> as it was a huge performance bottleneck.
> So it will make a lot of sense to create a tgext which provides routes
> based controller _lookup and so on.
> I can give a try at it as soon as I'll have some spare time, but it is
> not something will happen soon.
>
> I think your solution should work but probably overriding
> _get_dispatchable to return what you need would be a solution that has
> to mimic less TG things like setting up i18n, calling _before, _after
> and so on as the _call would remain the same.
>
> Both anyway rely a lot on internals of TG that might change in the future
>
>
>
>
>
>
>
> On Tue, Jul 10, 2012 at 11:01 AM, Artur Gavkaliuk <[email protected]> 
> wrote:
> > Hello
> > I've found solution and would like to hear your opinion.
> > It's very basic but could be easily improved.
> > I've just added next method to my BaseController:
> > class BaseController(TGController):
> > ........
> >     def _perform_call(self, func, args):
> >         if (func != self.routes_placeholder):
> >             if hasattr(self, '_before'):
> >                 self._before(*args, **args)
> >             r = self._call(func, args, remainder=None)
> >             if hasattr(self, '_after'):
> >                 self._after(*args, **args)
> >             return r
> >         else:
> >             return TGController._perform_call(self, func, args)
>
> > Could it be added to original TG code?
>
> > Понеділок, 9 липня 2012 р. 14:42:43 UTC+3 користувач Artur Gavkaliuk
> > написав:
>
> >> Thank you for quick answer.
> >> I'm wondering if there is a way to set exact method of controller which
> >> should handle request inside _lookup.
> >> And, are _lookup methods called hierarchically (particularly, will root
> >> _lookup be called if  the one from mounted controller failed)?
>
> >> Понеділок, 9 липня 2012 р. 14:28:23 UTC+3 користувач Alessandro Molina
> >> написав:
>
> >>> I'm not a routes user, so my answer might be somehow wrong, it is
> >>> mostly based on the knowledge that I have of the TurboGears routing
> >>> system.
>
> >>> The routes integration was not used by TurboGears itself, was there
> >>> due to Pylons and was hijacked to always route to the RootController
> >>> which was then in charge of the real routing. This is the reason why
> >>> you can only route to Pylons controller using routes and not to
> >>> TurboGears one, losing so the TurboGears features like validation,
> >>> expose and so on. If you add routes that route to a TurboGears
> >>> controller the controller itself will try to route them again,
> >>> obviously doing the wrong thing
>
> >>> Somehow you might be able to use routes with validation and expose by
> >>> creating a Pylons controller that inherits from
> >>> tg.controllers.decoratedcontroller.DecoratedController but keep in
> >>> mind that this might break any time in the future.
>
> >>> The TurboGears way to manage regular expression based routing is to
> >>> handle them inside the _lookup method and return the actual controller
> >>> instance that has to handle them with the remaining part of the url
> >>> for which the dispatch has to continue from the returned controller.
>
> >>> On Mon, Jul 9, 2012 at 1:13 PM, Artur Gavkaliuk <[email protected]>
> >>> wrote:
> >>> > Hello
> >>> > This question was raised several times but I didn't see clear and
> >>> > up-to-date
> >>> > answer.
> >>> > So, is there any convenient way to map TGController subclass with
> >>> > custom
> >>> > url?
> >>> > Pylons WSGIController is mapped easily but I would like to have @expose
> >>> > decorator working.
> >>> > I'm following 'classic' example from app_config:
> >>> >                     # Add a Samples route
> >>> >                     map.connect('/samples/', controller='samples',
> >>> > action=index)
>
> >>> >                     # Setup a default route for the root of object
> >>> > dispatch
> >>> >                     map.connect('*url', controller='root',
> >>> > action='routes_placeholder')
>
> >>> > --
> >>> > You received this message because you are subscribed to the Google
> >>> > Groups
> >>> > "TurboGears" group.
> >>> > To view this discussion on the web visit
> >>> >https://groups.google.com/d/msg/turbogears/-/8yXhtPQj6zUJ.
> >>> > 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/turbogears?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "TurboGears" group.
> > To view this discussion on the web visit
> >https://groups.google.com/d/msg/turbogears/-/5RFVdh94nf8J.
>
> > 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/turbogears?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" 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/turbogears?hl=en.

Reply via email to