Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | | | | 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 | |
|/ / / / | ||||||
* | | | | Merge pull request #15289 from zzak/future_port_c8ddb61 | Godfrey Chan | 2014-05-23 | 1 | -3/+3 | |
|\ \ \ \ | | | | | | | | | | | Future port c8ddb61 [ci skip] | |||||
| * | | | | Future port c8ddb61 | Zachary Scott | 2014-05-23 | 1 | -3/+3 | |
| | | | | | ||||||
* | | | | | glob_param is never used, so rm | Aaron Patterson | 2014-05-23 | 3 | -10/+8 | |
|/ / / / | | | | | | | | | | | | | | | | | | | | | 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). | |||||
* | | | | use Proc.new to automatically do parameter checking for us | Aaron Patterson | 2014-05-23 | 1 | -3/+1 | |
| | | | | ||||||
* | | | | there is no formatter on the router object, so rm | Aaron Patterson | 2014-05-23 | 1 | -1/+0 | |
| | | | | ||||||
* | | | | Merge pull request #15273 from DNNX/formatter-refactoring-4 | Rafael Mendonça França | 2014-05-23 | 1 | -5/+0 | |
|\ \ \ \ | | | | | | | | | | | Remove AD::Journey::Formatter#verify_required_parts! | |||||
| * | | | | Remove AD::Journey::Formatter#verify_required_parts! | Viktar Basharymau | 2014-05-23 | 1 | -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 class | Aaron Patterson | 2014-05-23 | 3 | -21/+10 | |
| | | | | ||||||
* | | | | pass the correct custom request to the recognize method | Aaron Patterson | 2014-05-23 | 3 | -17/+12 | |
| | | | | ||||||
* | | | | switch to the `serve` method so we can remove the request class (eventually) | Aaron Patterson | 2014-05-23 | 2 | -8/+6 | |
| | | | | ||||||
* | | | | pull request allocation up one frame | Aaron Patterson | 2014-05-23 | 1 | -1/+3 | |
| | | | | ||||||
* | | | | extract request allocation from the main app serving routine | Aaron Patterson | 2014-05-23 | 2 | -2/+5 | |
| | | | | ||||||
* | | | | use the accessors on the request object rather than touching env | Aaron Patterson | 2014-05-23 | 1 | -2/+2 | |
| | | | | ||||||
* | | | | find_routes only use the request, so stop passing env | Aaron Patterson | 2014-05-23 | 1 | -3/+3 | |
| | | | | ||||||
* | | | | remove NullRequest and just always pass a request class | Aaron Patterson | 2014-05-23 | 2 | -29/+8 | |
| | | | | ||||||
* | | | | use the request object since we have it | Aaron Patterson | 2014-05-23 | 3 | -14/+15 | |
|/ / / | | | | | | | | | | | | | stop hardcoding hash keys and use the accessors provided on the request object. | |||||
* | | | stop using PARAMETERS_KEY, and use the accessor on the request object | Aaron Patterson | 2014-05-22 | 3 | -7/+9 | |
| | | | | | | | | | | | | this decouples our code from the env hash a bit. | |||||
* | | | pass the instantiated request to the find_routes method | Aaron Patterson | 2014-05-22 | 1 | -5/+7 | |
| | | | ||||||
* | | | just return path parameters | Aaron Patterson | 2014-05-22 | 1 | -2/+1 | |
| | | | ||||||
* | | | use symbol keys for path_parameters | Aaron Patterson | 2014-05-22 | 6 | -16/+16 | |
| | | | ||||||
* | | | Merge pull request #15254 from DNNX/formatter-refactoring-3 | Rafael Mendonça França | 2014-05-22 | 1 | -4/+4 | |
|\ \ \ | | | | | | | | | Rename `stack` to `queue` | |||||
| * | | | Rename `stack` to `queue` | Viktar Basharymau | 2014-05-22 | 1 | -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-2 | Rafael Mendonça França | 2014-05-22 | 1 | -1/+1 | |
|\ \ \ \ | | | | | | | | | | | Remove unnecessary `Hash#to_a` call | |||||
| * | | | | Remove unnecessary `Hash#to_a` call | Viktar Basharymau | 2014-05-22 | 1 | -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-refactoring | Rafael Mendonça França | 2014-05-22 | 1 | -1/+1 | |
|\ \ \ \ | | | | | | | | | | | Use `break` instead of `next` in AD::Journey::Formatter#match_route | |||||
| * | | | | Use `break` instead of `next` in AD::Journey::Formatter#match_route | Viktar Basharymau | 2014-05-22 | 1 | -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 env | Rafael Mendonça França | 2014-05-22 | 1 | -1/+1 | |
|/ / / | | | | | | | | | | It was changed by mistake at c5d64b2b86aa42f57881091491ee289b3c489c7e. | |||||
* | | | Form full URI as string to be parsed in Rack::Test. | Guo Xiang Tan | 2014-05-21 | 3 | -13/+16 | |
| | | | | | | | | | | | | There are performance gains to be made by avoiding URI setter methods. | |||||
* | | | drop hash allocations during match | Aaron Patterson | 2014-05-21 | 1 | -2/+2 | |
| | | | ||||||
* | | | fewer object allocations and method calls during route match | Aaron Patterson | 2014-05-21 | 1 | -5/+5 | |
| | | | ||||||
* | | | middle variable is never used, so rm | Aaron Patterson | 2014-05-21 | 3 | -16/+16 | |
| | | | ||||||
* | | | use the existing constant rather than the hardcoded string | Aaron Patterson | 2014-05-21 | 1 | -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 anymore | Aaron Patterson | 2014-05-21 | 1 | -1/+0 | |
| | | | ||||||
* | | | we can just use Ruby here | Aaron Patterson | 2014-05-21 | 1 | -2/+2 | |
| | | | ||||||
* | | | reuse path formatter from the non-optimized path. | Aaron Patterson | 2014-05-21 | 3 | -39/+3 | |
| | | | | | | | | | | | | | | | 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 | |||||
* | | | make variable name more clear | Aaron Patterson | 2014-05-21 | 1 | -2/+2 | |
| | | | ||||||
* | | | do not mutate parameters, let the caller do mutations | Aaron Patterson | 2014-05-21 | 2 | -4/+6 | |
| | | | ||||||
* | | | push the formatter up to the Route object | Aaron Patterson | 2014-05-21 | 2 | -4/+4 | |
| | | | ||||||
* | | | Merge pull request #15221 from laurelfan/doc-fix-redirecting | Arthur Nogueira Neves | 2014-05-21 | 1 | -4/+8 | |
|\ \ \ | | | | | | | | | fix formatting and text for ActionController::Redirecting doc | |||||
| * | | | fix formatting and text for ActionController::Redirecting doc | Laurel Fan | 2014-05-21 | 1 | -4/+8 | |
| | | | | ||||||
* | | | | Merge pull request #15213 from tgxworld/remove_redundant_code | Rafael Mendonça França | 2014-05-20 | 1 | -3/+2 | |
|\ \ \ \ | |/ / / |/| | | | Remove redundant code. | |||||
| * | | | Remove redundant code. | Guo Xiang Tan | 2014-05-20 | 1 | -3/+2 | |
| | | | | ||||||
* | | | | we don't use this parameter for anything, so rm | Aaron Patterson | 2014-05-20 | 3 | -22/+21 | |
| | | | | ||||||
* | | | | fewer string allocations per url_for | Aaron Patterson | 2014-05-20 | 1 | -7/+5 | |
| | | | | ||||||
* | | | | mutate the path string to avoid object allocations | Aaron Patterson | 2014-05-20 | 1 | -4/+4 | |
| | | | | ||||||
* | | | | push only_path conditional up | Aaron Patterson | 2014-05-20 | 1 | -18/+19 | |
| | | | |