aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | Merge branch 'tree'Aaron Patterson2013-10-095-109/+105
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree: (22 commits) remove dead code add some convenient methods for avoiding array allocations hide join_constraints inside the JoinDependency object speed up match? expose the root node and call it just skip the join if it's already there speed up finding existing nodes make node search more efficient remove == so we can see where walking up parents occurs push parent up to the superclass convert JoinBase to a tree and remove the Node class names are guaranteed to be symbols eliminate function that is only used in one place we will always detect the same node, so just pass the node in we do not need to to_s the name all the time parent is guaranteed to be the same reduce number of comparisons and array allocations rename the variable to make more sense with a tree walk the tree rather than generating a hash and walking it do not convert the tree to a list just for the first node ...
| * | | | | remove dead codeAaron Patterson2013-10-091-13/+0
| | | | | |
| * | | | | add some convenient methods for avoiding array allocationsAaron Patterson2013-10-092-3/+6
| | | | | |
| * | | | | hide join_constraints inside the JoinDependency objectAaron Patterson2013-10-092-8/+7
| | | | | |
| * | | | | speed up match?Aaron Patterson2013-10-091-0/+1
| | | | | |
| * | | | | expose the root node and call itAaron Patterson2013-10-091-21/+11
| | | | | |
| * | | | | just skip the join if it's already thereAaron Patterson2013-10-091-14/+10
| | | | | | | | | | | | | | | | | | | | | | | | Remove the annoying `find_or_build` stuff.
| * | | | | speed up finding existing nodesAaron Patterson2013-10-091-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The node must be a child of the parent passed in, so only search children of the parent node
| * | | | | make node search more efficientAaron Patterson2013-10-094-3/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than search every node in the tree, comparing that node and all of its parents every time, start at the root from both sides and work our way down the tree
| * | | | | remove == so we can see where walking up parents occursAaron Patterson2013-10-094-25/+15
| | | | | |
| * | | | | push parent up to the superclassAaron Patterson2013-10-093-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | We always want a linked list back to the root node.
| * | | | | convert JoinBase to a tree and remove the Node classAaron Patterson2013-10-092-42/+30
| | | | | |
| * | | | | names are guaranteed to be symbolsAaron Patterson2013-10-081-1/+1
| | | | | |
| * | | | | eliminate function that is only used in one placeAaron Patterson2013-10-081-7/+2
| | | | | |
| * | | | | we will always detect the same node, so just pass the node inAaron Patterson2013-10-081-7/+2
| | | | | |
| * | | | | we do not need to to_s the name all the timeAaron Patterson2013-10-081-5/+3
| | | | | |
| * | | | | parent is guaranteed to be the sameAaron Patterson2013-10-081-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | since we are searching a tree, the current level should be consistent, so we don't have to inspect the parent class / table
| * | | | | reduce number of comparisons and array allocationsAaron Patterson2013-10-081-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just inspecting the children nodes will reduce the number of comparisons we have to do (since it is limited to the child size)
| * | | | | rename the variable to make more sense with a treeAaron Patterson2013-10-081-7/+7
| | | | | |
| * | | | | walk the tree rather than generating a hash and walking itAaron Patterson2013-10-081-21/+10
| | | | | |
| * | | | | do not convert the tree to a list just for the first nodeAaron Patterson2013-10-081-1/+1
| | | | | |
| * | | | | generate the association hash from the top downAaron Patterson2013-10-081-17/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This prevents us from walking back up the parent tree once for each leaf.
| * | | | | store join parts in a treeAaron Patterson2013-10-081-16/+45
| | | | | |
* | | | | | Using flat_map instead of map and flattenArun Agrawal2013-10-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | original commit 8998441967a8cfc6e4302c29664ab9d0acd77704 Reverted here ec8ef1e1055c4e1598da13f49d30261f07f4a9b4
* | | | | | Merge pull request #12473 from claudiob/document-after-touchYves Senn2013-10-092-2/+6
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Add documentation for after_touch [ci skip]
| * | | | | Add documentation for after_touch [ci skip]claudiob2013-10-082-2/+6
| |/ / / /
* | | | | :scissors:Rafael Mendonça França2013-10-092-2/+2
| | | | |
* | | | | Push define_accessors to class level since we don't need anythig fromRafael Mendonça França2013-10-083-8/+8
| | | | | | | | | | | | | | | | | | | | the instance
* | | | | Use the reflection name instead of the accessorRafael Mendonça França2013-10-082-1/+2
| | | | |
* | | | | Move add_counter_cache_methods to class levelRafael Mendonça França2013-10-081-2/+2
| | | | |
* | | | | Move define_constructors to class levelRafael Mendonça França2013-10-081-3/+2
| | | | |
* | | | | Move define_writers to class level since we don't need anything from theRafael Mendonça França2013-10-082-3/+3
| | | | | | | | | | | | | | | | | | | | instance
* | | | | Move define_readers to class method since it doesn't need nothing fromRafael Mendonça França2013-10-082-5/+3
| | | | | | | | | | | | | | | | | | | | the instance
* | | | | Fix the indentationRafael Mendonça França2013-10-081-12/+13
|/ / / /
* | | | join parts in `build` are *always* new, so don't bother checkingAaron Patterson2013-10-081-1/+2
| | | |
* | | | stop looking up the reflection multiple timesAaron Patterson2013-10-081-6/+5
| | | |
* | | | cache join associations and join base on the stackAaron Patterson2013-10-081-4/+11
| | | | | | | | | | | | | | | | No reason to decompose the join objects on every iteration
* | | | use the API rather than accessing underlying data structuresAaron Patterson2013-10-081-1/+1
| | | |
* | | | associations is always a hashAaron Patterson2013-10-081-19/+13
| | | |
* | | | keys are always symbolsAaron Patterson2013-10-081-2/+4
| | | |
* | | | we can get a list of reflections from the join parts, so let's removeAaron Patterson2013-10-081-3/+5
| | | | | | | | | | | | | | | | the @reflections ivar.
* | | | transform the association input so we can avoid type checks later.Aaron Patterson2013-10-081-17/+31
| | | | | | | | | | | | | | | | | | | | We should consider moving the input munging outside the class instantiation
* | | | we know the keys are scalars, so avoid some typecheckingAaron Patterson2013-10-081-8/+12
| | | |
* | | | this method is only ever called with a reflectionAaron Patterson2013-10-081-6/+2
| | | | | | | | | | | | | | | | Stop typechecking the parameter. We know the type.
* | | | don't access the reflections hashAaron Patterson2013-10-082-3/+7
| | | | | | | | | | | | | | | | The reflections hash is supposed to be private, so let's use the API.
* | | | build association tree thing on demand.Aaron Patterson2013-10-081-6/+11
| | | | | | | | | | | | | | | | | | | | `instantiate` is only called once, so there is no reason to cache the data structure on the instance and mutate itself.
* | | | hide join_parts internals from other classesAaron Patterson2013-10-082-17/+17
| | | |
* | | | decouple JoinAssociation from JoinDependencyAaron Patterson2013-10-082-10/+5
| | | |
* | | | @associations can never have an array, so remove the dead codeAaron Patterson2013-10-081-4/+0
| | | |
* | | | typecast records returned from the db rather than to_sing everythingAaron Patterson2013-10-082-12/+21
|/ / /