| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| | |
This method isn't used internally, isn't tested, isn't documented. We
should delete it.
|
| |
| |
| |
| |
| | |
add a predicate method so that we can avoid is_a? calls on the resource
object.
|
| |
| |
| |
| |
| | |
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`)
|
| |
| |
| |
| |
| | |
`resource_scope` should just put resource scopes on the stack, and
doesn't need to know what a `scope_level` is.
|
| |
| |
| |
| |
| | |
We just want to augment the scope level, not the frame itself, so just
copy the frame to the new scope object.
|
| |
| |
| |
| | |
this gives us an easier way to iterate the stack
|
| |
| |
| |
| |
| | |
The same information is stored in the `@scope` linked list, so just get
it from there.
|
| |
| |
| |
| | |
this lets us remove the setter and make the Resource object Read-Only
|
| |
| |
| |
| |
| | |
We don't need to ask `scope` for the resource because we already have it
right here.
|
| |
| |
| |
| |
| | |
This method raises conditionally not always so we should not documment
as it always raise.
|
| | |
|
| |
| |
| |
| |
| | |
We should return when the contoller key is not present or if the
controller doesn't exist and we didn't raised an error.
|
| |
| |
| |
| | |
Related with dc1b937db780155089fce522f03d340e62f5df36
|
| |
| |
| |
| |
| |
| | |
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`.
|
| |
| |
| |
| | |
we don't really need this hash.
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
`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.
|
| |
| |
| |
| |
| | |
The method we called already has the conditional we need. Just add an
else block so that we don't need two tests.
|
| |
| |
| |
| |
| |
| |
| | |
`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.
|
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| | |
it isn't used.
|
|\ \
| | |
| | | |
replace each with each_key when only the key is needed
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| | | |
| | | | |
Allow a custom dispatcher to be provided to routing.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
scope so that they are available to subclasses.
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
`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.
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | | |
remove the setter. The request object manages the env hash, so any
mutations need to go through it
|
| | |
| | |
| | |
| | |
| | | |
Looks like this was left over from converting Rails to Rack. I think
it's safe to remove now.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | | |
since we only work with instances of classes, it greatly simplifies the
`Middleware` implementation.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Convert things like this:
middleware.use "Foo::Bar"
to this:
middleware.use Foo::Bar
|
| | |
| | |
| | |
| | |
| | | |
use a strategy pattern to calculate the conditional in `valid?` in
advance.
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|/ / |
|
| |
| |
| |
| |
| | |
this is another place that we should stop directly accessing the env
hash and let the request object take care of that for us
|
| | |
|
|\ \
| | |
| | | |
do not add common ports to HTTP_HOST
|
| | |
| | |
| | |
| | |
| | | |
- webservers do not do it
- it makes redirect urls ugly when request.host is used for redirection
|
|/ / |
|
| |
| |
| |
| |
| |
| |
| | |
again, we want to hide the contents of `env` from the implementation.
Allocate a request object to access the contents of env, but save
allocations due to string literal allocations when accessing the env
hash.
|
| |
| |
| |
| |
| | |
hide the env key in the request object so that other code doesn't need
to know.
|
| |
| |
| |
| |
| |
| | |
ExceptionWrapper only cares about the backtrace cleaner, so lets just
pass the cleaner to the wrapper. It does not need to know that env
exists or what key the backtrace cleaner is stored in
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Implement `serve` on the middleware. Nothing can be placed between the
instance of FileHandler and Static because Static instantiates an
instance of FileHandler. IOW there is no reason to implement the `call`
API in this case.
|
| | |
|
| | |
|