squeel 0.9.4 → 0.9.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -135,24 +135,20 @@ module Squeel
135
135
 
136
136
  association_joins = buckets['association_join'] || []
137
137
  stashed_association_joins = buckets['stashed_join'] || []
138
- join_nodes = buckets['join_node'] || []
138
+ join_nodes = (buckets['join_node'] || []).uniq
139
139
  string_joins = (buckets['string_join'] || []).map { |x|
140
140
  x.strip
141
141
  }.uniq
142
142
 
143
- join_list = custom_join_ast(manager, string_joins)
143
+ join_list = join_nodes + custom_join_ast(manager, string_joins)
144
144
 
145
- # All of this duplication just to add
145
+ # All of that duplication just to do this...
146
146
  self.join_dependency = JoinDependency.new(
147
147
  @klass,
148
148
  association_joins,
149
149
  join_list
150
150
  )
151
151
 
152
- join_nodes.each do |join|
153
- join_dependency.alias_tracker.aliased_name_for(join.left.name.downcase)
154
- end
155
-
156
152
  join_dependency.graft(*stashed_association_joins)
157
153
 
158
154
  @implicit_readonly = true unless association_joins.empty? && stashed_association_joins.empty?
@@ -161,7 +157,6 @@ module Squeel
161
157
  association.join_to(manager)
162
158
  end
163
159
 
164
- manager.join_sources.concat join_nodes.uniq
165
160
  manager.join_sources.concat join_list
166
161
 
167
162
  manager
@@ -1,3 +1,3 @@
1
1
  module Squeel
2
- VERSION = "0.9.4"
2
+ VERSION = "0.9.5"
3
3
  end
@@ -477,6 +477,10 @@ module Squeel
477
477
  relation = Person.joins(:authored_article_comments)
478
478
  relation.first.authored_article_comments.first.should eq Comment.first
479
479
  end
480
+
481
+ it 'creates a unique join when joining a table used in a has_many :through association' do
482
+ Person.first.authored_article_comments.joins(:article).first.should eq Comment.first
483
+ end
480
484
 
481
485
  it 'joins polymorphic belongs_to associations' do
482
486
  relation = Note.joins{notable(Article)}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: squeel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &70129585123660 !ruby/object:Gem::Requirement
16
+ requirement: &70289249898780 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70129585123660
24
+ version_requirements: *70289249898780
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &70129585122480 !ruby/object:Gem::Requirement
27
+ requirement: &70289249898020 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '3.0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70129585122480
35
+ version_requirements: *70289249898020
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: polyamorous
38
- requirement: &70129585121660 !ruby/object:Gem::Requirement
38
+ requirement: &70289249897260 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.5.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70129585121660
46
+ version_requirements: *70289249897260
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70129585121080 !ruby/object:Gem::Requirement
49
+ requirement: &70289249896240 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.6.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70129585121080
57
+ version_requirements: *70289249896240
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: machinist
60
- requirement: &70129585120560 !ruby/object:Gem::Requirement
60
+ requirement: &70289249894040 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.0.6
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70129585120560
68
+ version_requirements: *70289249894040
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: faker
71
- requirement: &70129585135820 !ruby/object:Gem::Requirement
71
+ requirement: &70289249893140 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 0.9.5
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70129585135820
79
+ version_requirements: *70289249893140
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: sqlite3
82
- requirement: &70129585134740 !ruby/object:Gem::Requirement
82
+ requirement: &70289249892520 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: 1.3.3
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70129585134740
90
+ version_requirements: *70289249892520
91
91
  description: ! "\n Squeel unlocks the power of ARel in your Rails 3 application
92
92
  with\n a handy block-based syntax. You can write subqueries, access named\n
93
93
  \ functions provided by your RDBMS, and more, all without writing\n SQL