squeel 0.9.4 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
|
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
|
data/lib/squeel/version.rb
CHANGED
@@ -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
|
+
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: &
|
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: *
|
24
|
+
version_requirements: *70289249898780
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activesupport
|
27
|
-
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: *
|
35
|
+
version_requirements: *70289249898020
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: polyamorous
|
38
|
-
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: *
|
46
|
+
version_requirements: *70289249897260
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
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: *
|
57
|
+
version_requirements: *70289249896240
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: machinist
|
60
|
-
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: *
|
68
|
+
version_requirements: *70289249894040
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: faker
|
71
|
-
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: *
|
79
|
+
version_requirements: *70289249893140
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: sqlite3
|
82
|
-
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: *
|
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
|