Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | only one nil check on the action variable | Aaron Patterson | 2014-05-28 | 1 | -10/+8 | |
| | | ||||||
* | | change to case / when on types | Aaron Patterson | 2014-05-28 | 1 | -8/+7 | |
| | | ||||||
* | | only do one nil check against the controller | Aaron Patterson | 2014-05-28 | 1 | -9/+9 | |
| | | ||||||
* | | extract controller and action parsing to a method | Aaron Patterson | 2014-05-28 | 1 | -19/+26 | |
| | | ||||||
* | | we don't need the call to presence. that is my present, to you! | Aaron Patterson | 2014-05-28 | 1 | -1/+1 | |
| | | ||||||
* | | swtich to returning early if to responds to call | Aaron Patterson | 2014-05-28 | 1 | -35/+32 | |
| | | ||||||
* | | return early if we have a valid controller name | Aaron Patterson | 2014-05-28 | 1 | -5/+5 | |
| | | ||||||
* | | trade 2 is_a? checks for a nil check | Aaron Patterson | 2014-05-28 | 1 | -2/+4 | |
| | | ||||||
* | | invert logic to remove nil? and exclude? checks (use ruby rather than AS ↵ | Aaron Patterson | 2014-05-28 | 1 | -6/+6 | |
| | | | | | | | | when possible | |||||
* | | fewer blank? calls | Aaron Patterson | 2014-05-28 | 1 | -4/+4 | |
| | | ||||||
* | | reduce action.blank? calls | Aaron Patterson | 2014-05-28 | 1 | -4/+6 | |
| | | ||||||
* | | reduce blank? checks | Aaron Patterson | 2014-05-28 | 1 | -4/+9 | |
| | | ||||||
* | | extract controller checks to methods | Aaron Patterson | 2014-05-28 | 1 | -19/+26 | |
| | | ||||||
* | | set defaults at the top so we can avoid the ||= test | Aaron Patterson | 2014-05-28 | 1 | -6/+9 | |
|/ | ||||||
* | PARAMETERS_KEY is only used in the request, so move the constant there | Aaron Patterson | 2014-05-27 | 1 | -2/+0 | |
| | ||||||
* | rm reset_parameters because we automatically do it from 9ca4839a | Aaron Patterson | 2014-05-27 | 1 | -2/+0 | |
| | ||||||
* | move path_parameter encoding check to the request object | Aaron Patterson | 2014-05-27 | 2 | -18/+2 | |
| | ||||||
* | dispatcher doesn't need `call` anymore | Aaron Patterson | 2014-05-27 | 1 | -4/+0 | |
| | ||||||
* | call `serve` with the request on dispatchers | Aaron Patterson | 2014-05-27 | 1 | -9/+10 | |
| | ||||||
* | constraints class does not need the request class anymore | Aaron Patterson | 2014-05-27 | 1 | -4/+4 | |
| | ||||||
* | give all endpoints a superclass | Aaron Patterson | 2014-05-27 | 4 | -22/+40 | |
| | ||||||
* | we do not need to cache rack_app | Aaron Patterson | 2014-05-26 | 1 | -9/+3 | |
| | ||||||
* | a redirect is not a dispatcher by definition, so eliminate test | Aaron Patterson | 2014-05-26 | 1 | -1/+1 | |
| | ||||||
* | push is_a check up to where the Constraints object is allocated | Aaron Patterson | 2014-05-26 | 2 | -6/+11 | |
| | ||||||
* | pass the request object to the application | Aaron Patterson | 2014-05-25 | 1 | -3/+2 | |
| | ||||||
* | pass a request to `matches?` so we can avoid creating excess requests | Aaron Patterson | 2014-05-25 | 2 | -7/+6 | |
| | ||||||
* | nothing is passed to `rack_app` anymore, so rm the params | Aaron Patterson | 2014-05-25 | 1 | -1/+1 | |
| | ||||||
* | one fewer is_a check | Aaron Patterson | 2014-05-25 | 1 | -4/+3 | |
| | ||||||
* | Constraints#app should never return another Constraints object, so switch to ↵ | Aaron Patterson | 2014-05-25 | 1 | -1/+1 | |
| | | | | if statement | |||||
* | eliminate dispatcher is_a checks | Aaron Patterson | 2014-05-24 | 1 | -8/+14 | |
| | ||||||
* | push is_a?(Dispatcher) check in to one place | Aaron Patterson | 2014-05-24 | 2 | -5/+10 | |
| | ||||||
* | Always construct route objects with Constraint objects | Aaron Patterson | 2014-05-24 | 3 | -9/+7 | |
| | ||||||
* | unwrap the constraints object on initialization, eliminate loops | Aaron Patterson | 2014-05-24 | 3 | -2/+11 | |
| | | | | | | | Unwrap Constraints objects. I don't actually think it's possible to pass a Constraints object to this constructor, but there were multiple places that kept testing children of this object. I *think* they were just being defensive, but I have no idea. | |||||
* | Constraints contructor should always return a Constraints object | Aaron Patterson | 2014-05-23 | 1 | -9/+5 | |
| | | | | I know, it's crazy. | |||||
* | default value is never used, so make it required | Aaron Patterson | 2014-05-23 | 1 | -1/+1 | |
| | ||||||
* | push options decomposition up so we can extract | Aaron Patterson | 2014-05-23 | 1 | -20/+13 | |
| | ||||||
* | glob_param is never used, so rm | Aaron Patterson | 2014-05-23 | 2 | -9/+3 | |
| | | | | | | this also changes the constructor. We don't need to pass more options than "defaults" (whatever defaults are, ugh. probably another hash of stupid stuff). | |||||
* | decouple the router object from the request class | Aaron Patterson | 2014-05-23 | 1 | -2/+1 | |
| | ||||||
* | pass the correct custom request to the recognize method | Aaron Patterson | 2014-05-23 | 1 | -1/+1 | |
| | ||||||
* | pull request allocation up one frame | Aaron Patterson | 2014-05-23 | 1 | -1/+3 | |
| | ||||||
* | stop using PARAMETERS_KEY, and use the accessor on the request object | Aaron Patterson | 2014-05-22 | 1 | -1/+0 | |
| | | | | this decouples our code from the env hash a bit. | |||||
* | use symbol keys for path_parameters | Aaron Patterson | 2014-05-22 | 3 | -5/+5 | |
| | ||||||
* | middle variable is never used, so rm | Aaron Patterson | 2014-05-21 | 1 | -1/+1 | |
| | ||||||
* | remove dead code. @klass isn't used anymore | Aaron Patterson | 2014-05-21 | 1 | -1/+0 | |
| | ||||||
* | reuse path formatter from the non-optimized path. | Aaron Patterson | 2014-05-21 | 1 | -6/+1 | |
| | | | | | The optimized and non-optimized path share more code now without significant performance degretation | |||||
* | reduce object allocations | Aaron Patterson | 2014-05-21 | 1 | -2/+4 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example: x = [1,2,3,4] y = [3,2,1] def test x, y hash = {} x.zip(y) { |k,v| hash[k] = v } hash end def test2 x, y Hash[x.zip(y)] end def test3 x, y x.zip(y).each_with_object({}) { |(k,v),hash| hash[k] = v } end def stat num start = GC.stat(:total_allocated_object) num.times { yield } total_obj_count = GC.stat(:total_allocated_object) - start puts "#{total_obj_count / num} allocations per call" end stat(100) { test(x,y) } stat(100) { test2(x,y) } stat(100) { test3(x,y) } __END__ 2 allocations per call 7 allocations per call 8 allocations per call | |||||
* | we don't use this parameter for anything, so rm | Aaron Patterson | 2014-05-20 | 1 | -1/+1 | |
| | ||||||
* | fewer hash allocations when calling url_for | Aaron Patterson | 2014-05-20 | 1 | -9/+12 | |
| | ||||||
* | fix variable names, only pass hashes to the positional args method | Aaron Patterson | 2014-05-20 | 1 | -8/+10 | |
| | ||||||
* | Only path requirements are relevant to optimized urls | Andrew White | 2014-05-15 | 1 | -1/+1 | |
| | | | | | The bit of URL generation that is optimized is the generation of the path so things like :host, :port, etc. are irrelevant. |