aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
Commit message (Collapse)AuthorAgeFilesLines
* Tiny documentation fixes [ci skip]Robin Dupret2015-08-111-2/+2
|
* Only use path if the key is not presentRafael Mendonça França2015-08-101-1/+1
| | | | | There are some cases where :path is nil on option and we should respect that.
* try to pass fewer options to `scope`Aaron Patterson2015-08-101-2/+3
| | | | We already know how to handle `path`, so lets just handle it on our own.
* always cast `name` to a symbol, and never to_s itAaron Patterson2015-08-101-2/+1
| | | | | | | All callers of `action_path` interpolate the return value in to a string, so there is no need for the method to to_s it. to_sym on a symbol will return the same symbol, though I think `action_path` may always be called with a symbol so this might not be necessary.
* pull path conditional upAaron Patterson2015-08-101-4/+6
| | | | we only need to check for `path` once.
* pull `defaults` extraction up the stack.Aaron Patterson2015-08-101-2/+6
| | | | Now we can see where `defaults` options originate
* avoid calling `scope` on `defaults` methodsAaron Patterson2015-08-101-3/+6
|
* let the `controller` method push / pop the stackAaron Patterson2015-08-101-11/+5
| | | | | since `controller` and `controller_scope` were the same, just combine them
* remove another call to `scope`Aaron Patterson2015-08-101-3/+4
|
* remove dead codeAaron Patterson2015-08-101-12/+0
| | | | | This method isn't used internally, isn't tested, isn't documented. We should delete it.
* avoid is_a? callsAaron Patterson2015-08-101-1/+5
| | | | | add a predicate method so that we can avoid is_a? calls on the resource object.
* avoid another call to `scope`Aaron Patterson2015-08-101-1/+1
| | | | | calling `scope` isn't cheap, so try to call cheaper methods that do the same thing for those particular parameters (in this case `path_scope`)
* push `with_scope_level` up so resource_scope doesn't knowAaron Patterson2015-08-101-25/+27
| | | | | `resource_scope` should just put resource scopes on the stack, and doesn't need to know what a `scope_level` is.
* reuse the same frame so we don't need a singleton hashAaron Patterson2015-08-101-2/+1
| | | | | We just want to augment the scope level, not the frame itself, so just copy the frame to the new scope object.
* add a null node at the top of the stackAaron Patterson2015-08-101-13/+9
| | | | this gives us an easier way to iterate the stack
* remove `@nesting` ivarAaron Patterson2015-08-101-9/+21
| | | | | The same information is stored in the `@scope` linked list, so just get it from there.
* pass `shallow` in to the resource constructorAaron Patterson2015-08-101-10/+5
| | | | this lets us remove the setter and make the Resource object Read-Only
* we have the resource on the stack, so just use itAaron Patterson2015-08-101-1/+1
| | | | | We don't need to ask `scope` for the resource because we already have it right here.
* Remove wrong commentRafael Mendonça França2015-08-091-1/+0
| | | | | This method raises conditionally not always so we should not documment as it always raise.
* Remove the conditional since it is done in the methodRafael Mendonça França2015-08-091-4/+4
|
* Execute the block when the controller doesn't existRafael Mendonça França2015-08-091-0/+1
| | | | | We should return when the contoller key is not present or if the controller doesn't exist and we didn't raised an error.
* Name the argument according with its jobRafael Mendonça França2015-08-091-2/+2
| | | | Related with dc1b937db780155089fce522f03d340e62f5df36
* push `scope` calls up one frameAaron Patterson2015-08-091-5/+13
| | | | | | eliminates calling `scope` in one method, pushes the other calls up one frame. This goes a little way towards eliminating the internal calls to `scope`.
* remove useless hashAaron Patterson2015-08-081-2/+2
| | | | we don't really need this hash.
* stop calling `scope` internallyAaron Patterson2015-08-082-13/+24
| | | | | | | we need to get a grip on what `scope` actually does. This commit removes some of the internal calls to `scope`. Eventually we should add public facing methods that provide the API that `scope` is trying to accomplish.
* remove useless conditionalAaron Patterson2015-08-081-1/+1
| | | | | | `prepare_params!` would raise an exception if `params` wasn't initialized, so it must always be available. Remove the existence conditional from the `controller` method.
* eliminate assignment in conditionalAaron Patterson2015-08-081-1/+3
| | | | | The method we called already has the conditional we need. Just add an else block so that we don't need two tests.
* Remove `defaults` hash from `Dispatcher`Aaron Patterson2015-08-082-9/+9
| | | | | | | `Dispatcher` doesn't need to hold on to the defaults hash. It only used the hash to determine whether or not it should raise an exception if there is a name error. We can pass that in further up the stack and alleviate Dispatcher from knowing about that hash.
* eliminate runtime conditionalAaron Patterson2015-08-081-10/+9
| | | | | | We know in advance whether the object is a dispatcher or not, so we can configure the Constraints object with a strategy that will call the right method.
* whitespaceAaron Patterson2015-08-081-3/+3
|
* remove the setter from `Scope`Aaron Patterson2015-08-081-4/+0
| | | | it isn't used.
* Merge pull request #21167 from AaronLasseigne/use_each_keyKasper Timm Hansen2015-08-081-1/+1
|\ | | | | replace each with each_key when only the key is needed
| * replace each with each_key when only the key is neededAaron Lasseigne2015-08-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using each_key is faster and more intention revealing. Calculating ------------------------------------- each 31.378k i/100ms each_key 33.790k i/100ms ------------------------------------------------- each 450.225k (± 7.0%) i/s - 2.259M each_key 494.459k (± 6.3%) i/s - 2.467M Comparison: each_key: 494459.4 i/s each: 450225.1 i/s - 1.10x slower
* | Refactor route assertion methods in resources testeileencodes2015-08-081-50/+51
| | | | | | | | | | | | | | | | The tests and methods were hard to read with `options[:options]` all over the place. This refactoring makes the code easier to understand. The change came out of work for moving the underlying code of controller tests to integraiton tests.
* | Merge pull request #11352 from xaviershay/dispatcher-apiRafael Mendonça França2015-08-084-21/+23
|\ \ | | | | | | Allow a custom dispatcher to be provided to routing.
| * | Allow a custom dispatcher to be provided to routing.Xavier Shay2015-08-074-19/+17
| | |
| * | Move `controller_reference` and `controller_class_names` to protectedXavier Shay2015-08-071-2/+6
| | | | | | | | | | | | scope so that they are available to subclasses.
* | | Fix deprecation warning in testseileencodes2015-08-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using the string version of the class reference is now deprecated when referencing middleware. This should be written as a class not as a string. Deprecation warning that this change fixes: ``` DEPRECATION WARNING: Passing strings or symbols to the middleware builder is deprecated, please change them to actual class references. For example: "ActionDispatch::ShowExceptions" => ActionDispatch::ShowExceptions ```
* | | Rename `extra_keys` variables to `query_string_keys`eileencodes2015-08-082-4/+4
| | | | | | | | | | | | | | | | | | `extra_keys` is a confusing variable name because it's not clear what is "extra". This renames it to `query_string_keys` so it's clear that the "extra" is just the query string.
* | | Refactor to remove DrawOnce moduleeileencodes2015-08-081-27/+8
|/ / | | | | | | | | | | We were doing extra work that could be pushed off to Integration test and SharedRoutes. Creating an extra module isn't necessary when those are created by their respective classes.
* | deprecate the env method on controller instancesAaron Patterson2015-08-073-2/+4
| | | | | | | | | | | | people should be accessing request information through the request object, not via the env hash. If they really really want at the env hash, then they can get it off the request.
* | the request object manages `env`Aaron Patterson2015-08-071-2/+0
| | | | | | | | | | remove the setter. The request object manages the env hash, so any mutations need to go through it
* | remove vestigial codeAaron Patterson2015-08-072-82/+0
| | | | | | | | | | Looks like this was left over from converting Rails to Rack. I think it's safe to remove now.
* | stop using @_env in the controller instanceAaron Patterson2015-08-074-5/+12
| | | | | | | | | | | | | | Actions are processed through `dispatch`, so they should have the request set on them before any user land code can be executed. Lets stop setting _env on the controller, and give access to it through the `env` method.
* | finish deprecating handling strings and symbolsAaron Patterson2015-08-076-80/+24
| | | | | | | | | | since we only work with instances of classes, it greatly simplifies the `Middleware` implementation.
* | Using strings or symbols for middleware class names is deprecated.Aaron Patterson2015-08-076-50/+61
| | | | | | | | | | | | | | | | | | | | Convert things like this: middleware.use "Foo::Bar" to this: middleware.use Foo::Bar
* | move `valid?` conditional to the constructorAaron Patterson2015-08-071-11/+21
| | | | | | | | | | use a strategy pattern to calculate the conditional in `valid?` in advance.
* | simplify the Middleware constructorAaron Patterson2015-08-073-57/+54
| | | | | | | | | | | | We should do the hard work outside the constructor. Also fix the tests to not directly construct middleware objects, but to go through the stack object.
* | use Proc.new to reduce some conditionalsAaron Patterson2015-08-071-3/+1
| | | | | | | | | | | | Proc.new will pick up the passed in block, but since it's a default param, it won't get evaluated unless someone doesn't pass in an app. It will raise an exception if no block is provided.
* | the request class is never changed, so just use it directly in the method bodyAaron Patterson2015-08-072-6/+6
|/