aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
Commit message (Collapse)AuthorAgeFilesLines
* add a regression test for scoped `format` paramsAaron Patterson2015-08-121-0/+11
| | | | This just ensures that `format` is applied to things inside the scope
* Merge pull request #21214 from rodzyn/fewer_objects_and_refactoringRafael Mendonça França2015-08-121-6/+5
|\ | | | | Fewer objects and refactoring
| * Simplify codeMarcin Olichwirowicz2015-08-131-5/+4
| | | | | | | | | | Since we are always responding with an array and using `any?`, we don't need to check if an array is empty
| * Avoid unnecessary MatchData objectsMarcin Olichwirowicz2015-08-131-1/+1
| |
* | store `via` outside the options hashAaron Patterson2015-08-121-3/+6
| | | | | | | | | | Now we don't have to manually remove this from the options hash since the scope stores it outside of "options"
* | don't mutate the caller's variablesAaron Patterson2015-08-121-14/+15
| | | | | | | | | | | | | | Remove the `options` reader from `Resource` because nobody needs to see that hash. Also remove mutations on the options hash in `apply_common_behavior_for` because leaving the side effects in that method makes it difficult to understand what is going on in the caller.
* | store `:only` and `:except` outside the normal options hashAaron Patterson2015-08-121-9/+8
| | | | | | | | | | | | these two keys have a different merge strategy, and they also just get removed from the options hash later in the code. If we store them in a separate place, then we don't need to remove them later
* | add a regression test for adding arbitrary keys to `scope`Aaron Patterson2015-08-121-0/+15
|/
* add a method to `Scope` for getting mapping optionsAaron Patterson2015-08-122-3/+10
| | | | | Eventually we don't want to expose the "options" hash from scope, only read values from it. Lets start by adding a reader method.
* pull via checking up to via extractionAaron Patterson2015-08-121-11/+15
| | | | | now we don't need to construct a Mapping object just to get an ArgumentError if there is no `via` parameter provided.
* pull `via` all the way out of `add_route`Aaron Patterson2015-08-122-11/+20
|
* fix via handling when it's in a scopeAaron Patterson2015-08-121-1/+1
|
* add a test for adding "via" using `scope`Aaron Patterson2015-08-121-0/+9
|
* pull `via` extraction upAaron Patterson2015-08-122-7/+8
| | | | | | We're going to try pulling this up further, and check `via` validity sooner. This way we don't have to do a bunch of processing on `options` hashes only to find out that the route is incorrect
* simplify `split_constraints`Aaron Patterson2015-08-121-12/+11
| | | | | If we do the Regexp verification in a second method, then the `split_constraints` method gets much easier.
* remove side effects from `normalize_format`Aaron Patterson2015-08-121-9/+13
|
* switch === to case / whenAaron Patterson2015-08-121-3/+4
|
* make `split_constraints` more functional.Aaron Patterson2015-08-121-14/+13
| | | | | | I don't want `split_constraints` to mutate any instance variables. That way it's easier to move the method around and understand what it does (it has no side effects)
* make `constraints` more functionalAaron Patterson2015-08-121-8/+10
| | | | | I don't want to rely on mutating ivars. This gives me more freedom when refactoring
* only call `split_constraints` onceAaron Patterson2015-08-111-4/+4
|
* only do is_a? checks on `options_constraints` onceAaron Patterson2015-08-111-16/+9
| | | | we don't need to do it so many times.
* Mapping instances don't need `scope` anymoreAaron Patterson2015-08-111-3/+3
|
* pull scope[:constraints] upAaron Patterson2015-08-111-5/+4
| | | | Now we only need to call `split_constraints` possibly twice!
* pull :format up a little bitAaron Patterson2015-08-111-3/+5
| | | | | apparently `format` can also come from the scope options, so we need to extract it there too.
* Merge pull request #21203 from denniss/issue-21199Sean Griffin2015-08-112-1/+9
|\ | | | | Authorization scheme should be case insensitive. Fixes #21199
| * Authorization scheme should be case insensitive. Fixes #21199Dennis Suratna2015-08-112-1/+9
| |
* | pull `to` upAaron Patterson2015-08-112-19/+20
| | | | | | | | | | this way we don't have to insert / delete it from the options hash so many times.
* | push scope access up for modulesAaron Patterson2015-08-111-3/+3
| | | | | | | | | | eventually we'll remove the need to access `scope` inside the Mapping object.
* | path is never nilAaron Patterson2015-08-111-1/+1
| |
* | split options hash and pass values downAaron Patterson2015-08-111-3/+5
| | | | | | | | | | | | `using_match_shorthand?` doesn't need to know that an options hash exists. Also use this opportunity to make the boolean logic a little more sane
* | pull option duping upAaron Patterson2015-08-111-7/+6
| |
* | split paths by typeAaron Patterson2015-08-111-16/+27
| | | | | | | | | | this simplifies the "downstream" logic since we know we'll only be dealing with one particular type
* | one fewer hash mutationAaron Patterson2015-08-111-3/+3
| |
* | push option decomposition up a bit moreAaron Patterson2015-08-112-6/+6
| | | | | | | | | | I think we can find the original place where `action` is added to the options hash now.
* | push `action` option extraction up one frame.Aaron Patterson2015-08-111-3/+5
| |
* | pull up the "options.delete(:controller)" logicAaron Patterson2015-08-112-14/+16
| | | | | | | | | | | | we want to try to pull this logic up to where the user actually passed in "controller" so that it's close to the related call. That way when we're down the stack, we don't need to wonder "why are we doing this?"
* | 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.