| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| | | |
| | | | |
Allow a custom dispatcher to be provided to routing.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
scope so that they are available to subclasses.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
```
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
`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.
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Remove duplicated `Array#to_param`
|
| | |
| | |
| | |
| | |
| | | |
`Array#to_param` is defind in active_support/core_ext/object/to_query.rb,
so we can call `to_param` if value is_a Array.
|
|\ \ \
| | | |
| | | | |
Fix Encoding::UndefinedConversionError with multibyte UTF-8 filename containing "%" character
|
| | | | |
|
| | |/
| |/| |
|
| | |
| | |
| | |
| | | |
allow testing controllers that use session#fetch with a default value.
|
| | |
| | |
| | |
| | |
| | | |
we don't recycle requests anymore, so we shouldn't need to recycle
cookie jars
|
| | |
| | |
| | |
| | | |
this prevents the middleware from knowing the specific key for the jar
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This changes the chained jars to ask the parent jar for the request
object which should eventually call back up to the original jar
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
eventually we will make the cookie jar derive these values from the
request object rather than save a reference to the values
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The cookie jar can just ask the request object for the information it
needs. This allows us to stop allocating hashes for options, and also
allows us to delay calculating values in advance. Generating the
options hash forced us to calculate values that we may never have needed
at runtime
|
| | |
| | |
| | |
| | |
| | |
| | | |
Accessing a request object has nice advantages over accessing a hash.
If you use a missing method name, you'll get an exception rather than a
`nil` (is one nice feature)
|
| | | |
|
|/ /
| |
| |
| |
| | |
This decouples the `call` method from knowing the SCRIPT_NAME key and
offloads decisions about how to access script_name
|