Okay I'll have to dig more into using that sort of syntax. And no problem ;)
*Matthew Davies* Junior Developer, GeoStrategies <http://geostrategies.com> Director of Photography, OffBlock Films <http://offblockfilms.com> 209-225-3246 <209-225.3246> | 209-202-3284 | daviesg...@gmail.com | daviesgeek.com <http://facebook.com/daviesgeek> <http://us.linkedin.com/in/daviesgeek> <http://twitter.com/daviesgeek> <http://daviesgeek.com/feed.xml> <http://github.com/daviesgeek> On Thu, Dec 10, 2015 at 4:12 PM, Brent Royal-Gordon <br...@architechies.com> wrote: > (Sorry for the repeat, Matthew.) > > > Can you clarify a bit on that? So, what you're saying is to generate > routing code based off the DSL router I've written? > > Yes, unless you can modify your DSL so you can directly provide your > controller classes, you’ll probably need to generate code. > > By “provide your controller classes”, I mean that you could make a routes > file which looked something like this (this routing syntax is loosely > inspired by Rails): > > import MyFramework.Router > > // UsersController.self is an instance which represents the > UsersController class. > // It’s of type UsersController.Type, which might (for instance) > be a subtype of WebController.Type, etc. > Router.root.resources(UsersController.self, path: “users”) { users > in > users.resources(PostsController.self, path: “posts”) { > posts in > // PostsController.comments is a way to retrieve a > closure which calls PostsController’s comments() instance method. > // You use it by saying something like > `myClosure(myControllerInstance)(arg1, arg2, etc)`. > posts.get(PostsController.comments, path: > “comments”) > } > users.resources(CommentsController.self, path: “comments”) > } > > Note that in all cases you pass instances, not names, to your routing > APIs. This allows you to write code that can work with any compatible class > or method without any danger of trying to use a class or method that > doesn’t exist. > > But using this approach limits the flexibility of your routing DSL’s > design. For instance, you can’t just take the string “users” and infer that > you should use UsersController. If you want that sort of more sophisticated > behavior, you’re going to need to generate Swift code instead. > > -- > Brent Royal-Gordon > Architechies > >
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users