aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/journey/route.rb
Commit message (Collapse)AuthorAgeFilesLines
* push is_a?(Dispatcher) check in to one placeAaron Patterson2014-05-241-9/+1
|
* unwrap the constraints object on initialization, eliminate loopsAaron Patterson2014-05-241-1/+1
| | | | | | | Unwrap Constraints objects. I don't actually think it's possible to pass a Constraints object to this constructor, but there were multiple places that kept testing children of this object. I *think* they were just being defensive, but I have no idea.
* reuse path formatter from the non-optimized path.Aaron Patterson2014-05-211-4/+0
| | | | | The optimized and non-optimized path share more code now without significant performance degretation
* make variable name more clearAaron Patterson2014-05-211-2/+2
|
* do not mutate parameters, let the caller do mutationsAaron Patterson2014-05-211-4/+0
|
* push the formatter up to the Route objectAaron Patterson2014-05-211-1/+2
|
* cache the formatter on the path objectAaron Patterson2014-05-201-2/+1
|
* translate AST to a formatter before url generationAaron Patterson2014-05-201-1/+2
|
* Make URL escaping more consistentAndrew White2014-04-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | 1. Escape '%' characters in URLs - only unescaped data should be passed to URL helpers 2. Add an `escape_segment` helper to `Router::Utils` that escapes '/' characters 3. Use `escape_segment` rather than `escape_fragment` in optimized URL generation 4. Use `escape_segment` rather than `escape_path` in URL generation For point 4 there are two exceptions. Firstly, when a route uses wildcard segments (e.g. *foo) then we use `escape_path` as the value may contain '/' characters. This means that wildcard routes can't be optimized. Secondly, if a `:controller` segment is used in the path then this uses `escape_path` as the controller may be namespaced. Fixes #14629, #14636 and #14070.
* Skip Rack applications and redirects when generating urlsAndrew White2013-07-161-0/+12
| | | | | | | | | | When generating an unnamed url (i.e. using `url_for` with an options hash) we should skip anything other than standard Rails routes otherwise it will match the first mounted application or redirect and generate a url with query parameters rather than raising an error if the options hash doesn't match any defined routes. Fixes #8018
* Passing subdomain: '' to url_for removes the subdomain (instead of adding a ↵Derek Watson2013-04-181-0/+4
| | | | | | leading .) Adding a boolean route constraint checks for presence/absence of request property
* Use custom visitor class for optimized url helpersAndrew White2013-03-031-0/+4
| | | | | | | | Rather than trying to use gsub to remove the optional route segments, which will fail with nested optional segments, use a custom visitor class that returns a empty string for group nodes. Closes #9524
* Change the behavior of route defaultsAndrew White2013-01-151-4/+7
| | | | | | | | | | | | | | | | | | | This commit changes route defaults so that explicit defaults are no longer required where the key is not part of the path. For example: resources :posts, bucket_type: 'posts' will be required whenever constructing the url from a hash such as a functional test or using url_for directly. However using the explicit form alters the behavior so it's not required: resources :projects, defaults: { bucket_type: 'projects' } This changes existing behavior slightly in that any routes which only differ in their defaults will match the first route rather than the closest match. Closes #8814
* Add support for other types of routing constraintsAndrew White2013-01-151-5/+24
| | | | | | | | | | | | | | This now allows the use of arrays like this: get '/foo/:action', to: 'foo', constraints: { subdomain: %w[www admin] } or constraints where the request method returns an Fixnum like this: get '/foo', to: 'foo#index', constraints: { port: 8080 } Note that this only applies to constraints on the request - path constraints still need to be specified as Regexps as the various constraints are compiled into a single Regexp.
* access `@path` and `@routes` via reader methods in journeyGosha Arinich2013-01-071-1/+1
|
* Refactor to not call path.ast twiceCarlos Antonio da Silva2013-01-061-2/+3
|
* refactor Route#ast to use or-equals and block, instead of return with a condGosha Arinich2013-01-061-5/+4
|
* update AD::Journey to follow Rails coding conventionsFrancesco Rodriguez2012-12-201-4/+4
|
* :nodoc: Journey because is not part of the public API [ci skip]Francesco Rodriguez2012-12-191-2/+2
|
* Integrate Journey into Action DispatchAndrew White2012-12-191-0/+94
Move the Journey code underneath the ActionDispatch namespace so that we don't pollute the global namespace with names that may be used for models. Fixes rails/journey#49.