aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/routing
Commit message (Collapse)AuthorAgeFilesLines
...
* | fix variable nameAaron Patterson2014-07-301-3/+3
| |
* | split path_helpers and url_helpersAaron Patterson2014-07-301-18/+25
| | | | | | | | | | this lets us avoid hard coding a regexp for separating path and url helpers in the clear! method.
* | `add` will remove the method if it exists alreadyAaron Patterson2014-07-301-1/+0
| |
* | Deprecate `*_path` methods in mailers@schneems and @sgrif2014-07-301-48/+72
| | | | | | | | | | | | | | | | | | | | | | Email does not support relative links since there is no implicit host. Therefore all links inside of emails must be fully qualified URLs. All path helpers are now deprecated. When removed, the error will give early indication to developers to use `*_url` methods instead. Currently if a developer uses a `*_path` helper, their tests and `mail_view` will not catch the mistake. The only way to see the error is by sending emails in production. Preventing sending out emails with non-working path's is the desired end goal of this PR. Currently path helpers are mixed-in to controllers (the ActionMailer::Base acts as a controller). All `*_url` and `*_path` helpers are made available through the same module. This PR separates this behavior into two modules so we can extend the `*_path` methods to add a Deprecation to them. Once deprecated we can use this same area to raise a NoMethodError and add an informative message directing the developer to use `*_url` instead. The module with warnings is only mixed in when a controller returns false from the newly added `supports_relative_path?`. Paired @sgrif & @schneems
* | oops! :bomb:Aaron Patterson2014-07-291-1/+1
| | | | | | | | use helpers.include? so we don't get any false positives
* | ask the named routes collection if the route is definedAaron Patterson2014-07-291-0/+4
| | | | | | | | | | we should not be accessing internals to figure out if a method is defined.
* | helpers should be a Set so it doesn't grow unboundedAaron Patterson2014-07-291-4/+12
| | | | | | | | | | since helpers is a set, we can be confident about when to remove methods from the module.
* | pass the module to define_named_route_methodsAaron Patterson2014-07-291-7/+7
| | | | | | | | after this, we can disconnect @module from the instance
* | only ask for the routes module onceAaron Patterson2014-07-291-2/+4
| | | | | | | | we can cache the module on the stack, then reuse it
* | eval_block should be privateAaron Patterson2014-07-291-0/+1
| |
* | remove the mounted? methodAaron Patterson2014-07-282-6/+2
| | | | | | | | | | we know the routes should not be "optimized" when mounting an application
* | remove some cachingAaron Patterson2014-07-281-2/+1
| | | | | | | | | | this caching doesn't increase performance, but does increase complexity. remove it for now and find better ways to speed up this code.
* | pass the route name to define_url_helperAaron Patterson2014-07-172-22/+24
| | | | | | | | | | this allows us to avoid 2 hash allocations per named helper definition, also we can avoid a `merge` and `delete`.
* | use a strategy object for generating urls in named helpersAaron Patterson2014-07-171-13/+24
| | | | | | | | | | | | since we know that the route should be a path or fully qualified, we can pass a strategy object that handles generation. This allows us to eliminate an "if only_path" branch when generating urls.
* | we do not need to dup the options hash, it is private and a new object each callAaron Patterson2014-07-161-2/+2
| |
* | push rails app testing upAaron Patterson2014-07-161-9/+13
| | | | | | | | this way we only have to test for whether it is a rails app once.
* | Rails-ish apps should descend from Rails::RailtieAaron Patterson2014-07-161-8/+3
| | | | | | | | | | Use an is_a check to ensure it's a Railsish app so we can avoid respond_to calls everywhere.
* | app should always be a class (I suppose)Aaron Patterson2014-07-161-1/+1
| |
* | we should be checking if the app is a classAaron Patterson2014-07-161-1/+1
| | | | | | | | | | Hopefully `object.class` always returns something that is_a?(Class), so the previous logic didn't really make sense.
* | extract inner options before delegating to the helperAaron Patterson2014-07-161-7/+13
| | | | | | | | | | If we extract the options from the user facing method call ASAP, then we can simplify internal logic.
* | routed applications will respond to these methodsAaron Patterson2014-07-151-1/+1
| |
* | RouteSet should be in charge of constructing the dispatherAaron Patterson2014-07-152-8/+13
| | | | | | | | Now we can override how requests are dispatched in the routeset object
* | Generate shallow paths for all children of shallow resources.Seb Jacobs2014-07-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to this commit shallow resources would only generate paths for non-direct children (with a nested depth greater than 1). Take the following routes file. resources :blogs do resources :posts, shallow: true do resources :comments do resources :tags end end end This would generate shallow paths for `tags` nested under `posts`, e.g `/posts/:id/tags/`, however it would not generate shallow paths for `comments` nested under `posts`, e.g `/posts/:id/comments/new`. This commit changes the behaviour of the route mapper so that it generate paths for direct children of shallow resources, for example if you take the previous routes file, this will now generate shallow paths for `comments` nested under `posts`, .e.g `posts/:id/comments/new`. This was the behaviour in Rails `4.0.4` however this was broken in @jcoglan's fix for another routes related issue[1]. This also fixes an issue[2] reported by @smdern. [1] https://github.com/rails/rails/commit/d0e5963 [2] https://github.com/rails/rails/issues/15783
* | Fix doc unwanted dl Admin:: [ci skip]Ciro Santilli2014-07-011-1/+1
|/
* Remove unused param 'separators' from RouteSet#build_pathMindaugas Mozūras2014-06-151-2/+2
|
* remove another wasteful AS::SafeBuffer allocationAaron Patterson2014-06-061-1/+1
|
* push splitting "to" up the callstackAaron Patterson2014-06-031-15/+20
|
* Routes specifying 'to:' must be a string that contains a "#" or a rackAaron Patterson2014-06-031-3/+21
| | | | | application. Use of a symbol should be replaced with `action: symbol`. Use of a string without a "#" should be replaced with `controller: string`.
* push some options munging to an alternate constructorAaron Patterson2014-06-031-13/+19
|
* move options_constraints tests next to each otherAaron Patterson2014-06-031-2/+2
|
* only do is_a checks on `formatted` onceAaron Patterson2014-06-031-9/+5
|
* push options_constraints processing upAaron Patterson2014-06-031-22/+24
| | | | | this lets us reduce is_a checks on the options_constraints and push "callable constraints" verification to the right place.
* remove options as an ivarAaron Patterson2014-06-031-6/+8
|
* only do Regexp === option onceAaron Patterson2014-06-031-3/+4
|
* return early from add_request_methodAaron Patterson2014-06-031-11/+11
|
* only loop over `options` once (hopefully)Aaron Patterson2014-06-031-13/+11
|
* only loop through constraints onceAaron Patterson2014-06-031-19/+15
|
* change defaults allocation to a one-linerAaron Patterson2014-06-031-3/+2
|
* no longer need the scope ivarAaron Patterson2014-06-031-2/+1
|
* only look up scope[:module] onceAaron Patterson2014-06-031-6/+6
|
* remove IGNORE_OPTIONSAaron Patterson2014-06-031-4/+8
|
* :only is never used in Mapping, so rm the keyAaron Patterson2014-06-031-1/+2
|
* remove :defaults from the IGNORE_OPTIONS listAaron Patterson2014-06-031-4/+4
|
* remove :constraints from IGNORE_OPTIONSAaron Patterson2014-06-031-4/+5
|
* disconnect normalize_defaults! from options[:constraints]Aaron Patterson2014-06-031-6/+6
|
* disconnect options and scope from the `blocks` methodAaron Patterson2014-06-031-7/+8
|
* disconnect the constraints method from the options and scope hashesAaron Patterson2014-06-031-12/+15
|
* :on is removed from options before the Mapping is instantiated, so remove it ↵Aaron Patterson2014-06-031-1/+1
| | | | from IGNORE_OPTIONS
* pull up via extraction and remove it from options / IGNORE_OPTIONSAaron Patterson2014-06-031-8/+6
|
* always make :via a listAaron Patterson2014-06-031-3/+2
|