aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/join_dependency.rb
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
* 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-081-2/+6
| | | | 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-081-6/+17
|
* decouple JoinAssociation from JoinDependencyAaron Patterson2013-10-081-1/+1
|
* @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-081-12/+17
|
* extract the string handling part to a method.Aaron Patterson2013-10-071-15/+15
| | | | | | We know the structure passed in to the `construct` method will be a hash, so we don't need to test it all the time. The key value will be a symbol or string, so handle it with the special method
* remove more dead codeAaron Patterson2013-10-071-2/+0
| | | | | We control the inputs to `construct`, so the wrong type shouldn't be passed in ever.
* this code is never used, remove itAaron Patterson2013-10-071-4/+0
|
* inject down the hash cacheAaron Patterson2013-10-031-3/+2
|
* hashes are ordered, so we do not need to sortAaron Patterson2013-10-031-3/+3
|
* Always pass parameters to `build`Aaron Patterson2013-10-031-2/+2
| | | | | We always know the parameters in advance, so we don't need to build it in to the method signature
* Set the join type on constructionAaron Patterson2013-10-031-4/+3
| | | | | We always set the join type immediately after construction, just make it part of the constructor and we can skip that step
* simplify the JoinAssociation constructor, check validity *before*Aaron Patterson2013-10-031-0/+6
|
* require the files we need so the classes are stand-aloneAaron Patterson2013-10-031-1/+0
|
* remove HABTM special cases from associations classesAaron Patterson2013-10-021-1/+1
|
* just set the default argument, a nil parent should be an errorAaron Patterson2013-05-211-2/+1
|
* fold the collection rather than multiple assigmentsAaron Patterson2013-05-211-3/+2
|
* use drop rather than calculate the array lengthAaron Patterson2013-05-211-1/+1
|
* Extract JoinDependency#join_relation to DRY the repeated application of the ↵Ben Woosley2013-05-101-0/+7
| | | | #join_associations.
* rdoc for some of the methods in JoinDependencyNeeraj Singh2013-04-101-0/+21
|
* remove_duplicate_results! should be protectedNeeraj Singh2013-04-101-2/+2
|
* changed variable name active_record => base_klassNeeraj Singh2013-04-091-4/+4
| | | | | | | | | | | | | | | | | Current code stores the klass name in active_record and this is used throughout. While reviewing the code time and again I had the mental picture of active_record being an instance of a klass. However here the actual klass is being stored in @active_record. Secondly at two different places while referring to @active_record the comment refers to it as base klass. All this points to active_record being not the best variable name. So I thought it is better to replace active_record with base_klass. This change is confined to JoinDependency, JoinBase, JoinPart and JoinAssociation - all joining related work.
* show name of the klass that has missing associationNeeraj Singh2013-04-021-1/+1
|
* no need to invoke to_s before applying internNeeraj Singh2013-04-021-1/+1
|
* Refactor to use each_key, remove extra spacesCarlos Antonio da Silva2013-01-281-1/+1
|
* Revert "Use flat_map { } instead of map {}.flatten"Santiago Pastorino2012-10-051-2/+2
| | | | | | | | | | | This reverts commit abf8de85519141496a6773310964ec03f6106f3f. We should take a deeper look to those cases flat_map doesn't do deep flattening. irb(main):002:0> [[[1,3], [1,2]]].map{|i| i}.flatten => [1, 3, 1, 2] irb(main):003:0> [[[1,3], [1,2]]].flat_map{|i| i} => [[1, 3], [1, 2]]
* Use flat_map { } instead of map {}.flattenSantiago Pastorino2012-10-051-2/+2
|
* Revert "Merge pull request #5494 from ↵Jon Leighton2012-05-051-1/+1
| | | | | | | armstrjare/active_record_relation_keep_association_join_context_on_merge" This reverts commit dcd04e76179611a9db28c9e391aa7d6c2a5b046a, reversing changes made to 58a49875df63729f07a9a81d1ee349087d258df5.