aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Merge pull request #15305 from tgxworld/remove_unnecessary_requireGuillermo Iguaran2014-05-241-1/+0
|\ \ \ | |/ / |/| | Remove unnecessary require of Minitest.
| * | Remove unnecessary require of Minitest.Guo Xiang Tan2014-05-241-1/+0
| | | | | | | | | | | | Minitest has already been required when calling Minitest.autorun.
* | | unwrap the constraints object on initialization, eliminate loopsAaron Patterson2014-05-244-3/+12
| | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge pull request #14986 from dlangevin/trailing-slash-url-generationRafael Mendonça França2014-05-241-7/+13
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Fixes URL generation with trailing_slash: true Conflicts: actionpack/lib/action_dispatch/http/url.rb
| * | | Fixes URL generation with trailing_slash: trueDan Langevin2014-05-221-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | URL generation with trailing_slash: true was adding a trailing slash after .:format Routes.draw do resources :bars end bars_url(trailing_slash: true, format: 'json') # => /bars.json/ This commit removes that extra trailing slash
* | | | Merge pull request #15291 from francocatena/router-visualizer-fixRafael Mendonça França2014-05-231-2/+2
|\ \ \ \ | | | | | | | | | | Fix router visualizer CSS and JS resources
| * | | | Fix router visualizer CSS and JS resourcesFranco Catena2014-05-231-2/+2
| | | | |
* | | | | Constraints contructor should always return a Constraints objectAaron Patterson2014-05-231-9/+5
| | | | | | | | | | | | | | | | | | | | I know, it's crazy.
* | | | | default value is never used, so make it requiredAaron Patterson2014-05-231-1/+1
| | | | |
* | | | | push options decomposition up so we can extractAaron Patterson2014-05-231-20/+13
|/ / / /
* | | | glob_param is never used, so rmAaron Patterson2014-05-232-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).
* | | | there is no formatter on the router object, so rmAaron Patterson2014-05-231-1/+0
| | | |
* | | | Merge pull request #15273 from DNNX/formatter-refactoring-4Rafael Mendonça França2014-05-231-5/+0
|\ \ \ \ | | | | | | | | | | Remove AD::Journey::Formatter#verify_required_parts!
| * | | | Remove AD::Journey::Formatter#verify_required_parts!Viktar Basharymau2014-05-231-5/+0
| | |/ / | |/| | | | | | | | | | | | | | Nobody uses this private method, maybe it is a leftover from some old refactoring. Let's delete it.
* | | | decouple the router object from the request classAaron Patterson2014-05-232-7/+4
| | | |
* | | | pass the correct custom request to the recognize methodAaron Patterson2014-05-232-4/+2
| | | |
* | | | switch to the `serve` method so we can remove the request class (eventually)Aaron Patterson2014-05-231-6/+0
| | | |
* | | | pull request allocation up one frameAaron Patterson2014-05-231-1/+3
| | | |
* | | | extract request allocation from the main app serving routineAaron Patterson2014-05-231-2/+4
| | | |
* | | | use the accessors on the request object rather than touching envAaron Patterson2014-05-231-2/+2
| | | |
* | | | find_routes only use the request, so stop passing envAaron Patterson2014-05-231-3/+3
| | | |
* | | | remove NullRequest and just always pass a request classAaron Patterson2014-05-231-26/+1
| | | |
* | | | use the request object since we have itAaron Patterson2014-05-231-8/+9
|/ / / | | | | | | | | | | | | stop hardcoding hash keys and use the accessors provided on the request object.
* | | stop using PARAMETERS_KEY, and use the accessor on the request objectAaron Patterson2014-05-222-7/+6
| | | | | | | | | | | | this decouples our code from the env hash a bit.
* | | pass the instantiated request to the find_routes methodAaron Patterson2014-05-221-5/+7
| | |
* | | just return path parametersAaron Patterson2014-05-221-2/+1
| | |
* | | use symbol keys for path_parametersAaron Patterson2014-05-223-5/+5
| | |
* | | Merge pull request #15254 from DNNX/formatter-refactoring-3Rafael Mendonça França2014-05-221-4/+4
|\ \ \ | | | | | | | | Rename `stack` to `queue`
| * | | Rename `stack` to `queue`Viktar Basharymau2014-05-221-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Because it is used as a queue (FIFO), not as a stack (LIFO). * http://en.wikipedia.org/wiki/Stack_(abstract_data_type) * http://en.wikipedia.org/wiki/Queue_(data_structure)
* | | | Merge pull request #15252 from DNNX/formatter-refactoring-2Rafael Mendonça França2014-05-221-1/+1
|\ \ \ \ | | | | | | | | | | Remove unnecessary `Hash#to_a` call
| * | | | Remove unnecessary `Hash#to_a` callViktar Basharymau2014-05-221-1/+1
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Inspired by https://github.com/rails/rails/commit/931ee4186b877856b212b0085cd7bd7f6a4aea67 ```ruby 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 h = { 'x' => 'y' } stat(100) { h. each { |pair| pair } } stat(100) { h.to_a.each { |pair| pair } } __END__ 1 allocations per call 2 allocations per call ```
* | | | Merge pull request #15247 from DNNX/activesupport-formatter-refactoringRafael Mendonça França2014-05-221-1/+1
|\ \ \ \ | | | | | | | | | | Use `break` instead of `next` in AD::Journey::Formatter#match_route
| * | | | Use `break` instead of `next` in AD::Journey::Formatter#match_routeViktar Basharymau2014-05-221-1/+1
| |/ / / | | | | | | | | | | | | | | | | | | | | The array is sorted in descending order, so there is no point in iterating further if we met a negative item - all the rest will be negative too.
* / / / Fix the hash key being delete from envRafael Mendonça França2014-05-221-1/+1
|/ / / | | | | | | | | | It was changed by mistake at c5d64b2b86aa42f57881091491ee289b3c489c7e.
* | | Form full URI as string to be parsed in Rack::Test.Guo Xiang Tan2014-05-211-7/+5
| | | | | | | | | | | | There are performance gains to be made by avoiding URI setter methods.
* | | drop hash allocations during matchAaron Patterson2014-05-211-2/+2
| | |
* | | fewer object allocations and method calls during route matchAaron Patterson2014-05-211-5/+5
| | |
* | | middle variable is never used, so rmAaron Patterson2014-05-212-2/+2
| | |
* | | use the existing constant rather than the hardcoded stringAaron Patterson2014-05-211-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | so tht I don't go totally insane with THsi crazy hash driven development. why is Everything a hash? Why do people think hashes in hashes with random keys is a Good API? You can't find things or deprecate them or control access whatsoever, you just have to hope that everyone is like "oh, you want to change that? that's cool! we all know it's hashes so go for it!" The End.
* | | remove dead code. @klass isn't used anymoreAaron Patterson2014-05-211-1/+0
| | |
* | | reuse path formatter from the non-optimized path.Aaron Patterson2014-05-213-39/+3
| | | | | | | | | | | | | | | The optimized and non-optimized path share more code now without significant performance degretation
* | | reduce object allocationsAaron Patterson2014-05-211-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
* | | make variable name more clearAaron Patterson2014-05-211-2/+2
| | |
* | | do not mutate parameters, let the caller do mutationsAaron Patterson2014-05-212-4/+6
| | |
* | | push the formatter up to the Route objectAaron Patterson2014-05-212-4/+4
| | |
* | | Merge pull request #15213 from tgxworld/remove_redundant_codeRafael Mendonça França2014-05-201-3/+2
|\ \ \ | | | | | | | | Remove redundant code.
| * | | Remove redundant code.Guo Xiang Tan2014-05-201-3/+2
| | | |
* | | | we don't use this parameter for anything, so rmAaron Patterson2014-05-202-2/+2
| | | |
* | | | fewer string allocations per url_forAaron Patterson2014-05-201-7/+5
| | | |
* | | | mutate the path string to avoid object allocationsAaron Patterson2014-05-201-4/+4
| | | |