Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Should add param support to routes? #1

Closed
boazsegev opened this issue Oct 6, 2014 · 2 comments
Closed

Should add param support to routes? #1

boazsegev opened this issue Oct 6, 2014 · 2 comments

Comments

@boazsegev
Copy link
Owner

I'm just thinking out loud if the routes method should support parameters / optional parameters, so we could have something like this:

route '/(:locale{en|de|ru})/book/:id' do
  params[:locale] # => en or de or ru
  params[:id] # => id supplied
end

seems like a nice touch, but should be in the core library or in a different gem (if at all)?

@boazsegev
Copy link
Owner Author

From my perspective, the price for magic routes is't worth it.

Adding features that are sometimes used is exactly what Anorexic is trying to avoid.

Since it is possible to use Regexp in routes, it seems easy enough to get the same result using a "SuperController" class and a correctly parsed routing system.

It's quite simple to rewrite the path as well, so that the "SuperController" could use the before filter to extract any parameters and rewrite the path for a simple routing system.

an app could apply it's own preferred path scheme doing something like this:

class SuperC
   def before
      result = request.match /^\/(en|he|ru|hu)(\/?.*)/
      if result
         params["locale"] = result[1].to_sym
      end
     request.path_info = result[2] 
     return false
   end
end

listen

route '*', SuperC

# routes

This will also allow an app to create it's own link's generator that adhere to it's scheme.

Still working on it...

@boazsegev
Copy link
Owner Author

Due to popular demand, magic routes are back on the table...

I found a way to move most of the heavy lifting for magic routes to the route initialization... so I feel comfortable enough implementing this feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant