from_clause_translate 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 15c7bce1b62eeff62ae32f6f407fd4ca9e831b2d38203346002beeb73ebae5e9
4
- data.tar.gz: a20bf26392c70a069531aecade583803f6f94fd67681ee4837b0eb82f84a46a1
3
+ metadata.gz: dec03bf1ffebcc53cdcd25cae40ae52f8671813821d8c0cd78424506f72e9452
4
+ data.tar.gz: 5062c3aa55d691f3070d0f15a8bea5c730b769e03c12db65cd011bf7ae70ba7e
5
5
  SHA512:
6
- metadata.gz: bfab419b9f9d71f80225a0e5d38414a3f24feda859fa8b5084ea267730ba7c02e96dda20d44a2f09c58cc66fd3de5dfbcbe1571ecd80d0193341bacb4f7e7302
7
- data.tar.gz: 940742d87690183cc6552201a61aaab55af72c46600ffc6b681fb988f9ff051911ce72e4725878395bf6c2d3f65a31b811ddc319b705ca8ed8e6358edfb68333
6
+ metadata.gz: 2daa5fecb8a07c5ac4c2ada8199b490a8e5e4519c3cc1b5d8e88b62df6126edb69c7d918d60cd705ecabea49dedd1829e80a1e4441d53cd26319dee409c12d59
7
+ data.tar.gz: 86f3d4e1f41f6ac155aa8c81b3e14f48b885051c78c18d44d868b22eb79d1c88327490110424509f0bfaf4b122fac859c891e4b1ce0bd3170cb370d526230afe
@@ -19,20 +19,22 @@ module ActiveRecord::Relation::Extended
19
19
  end
20
20
 
21
21
  def arel aliases = nil
22
- arel = super aliases
23
- if @translated_extra_columns
24
- add_translated_columns @translated_extra_columns
25
- @translated_extra_columns = nil
26
- apply_translates arel
27
- end
28
- arel
22
+ return super aliases unless @translated_extra_columns
23
+ add_translated_columns @translated_extra_columns
24
+ @translated_extra_columns = nil
25
+ joins = @values.delete :joins
26
+ apply_translates super(aliases), joins
29
27
  end
30
28
 
31
29
  def add_translated_columns columns
32
30
  (@values[:translated] ||= []).concat columns
33
31
  end
34
32
 
35
- def apply_translates arel = nil
33
+ UNSCOPING_VALUES =
34
+ ActiveRecord::QueryMethods::VALID_UNSCOPING_VALUES.dup.delete(:joins)
35
+
36
+ def apply_translates arel = nil, joins = nil
37
+ joins ||= @values.delete :joins
36
38
  arel ||= self.arel
37
39
  return if @translates_applied || !@klass.const_defined?(:TRANSLATED)
38
40
 
@@ -40,7 +42,9 @@ module ActiveRecord::Relation::Extended
40
42
  columns = translated_columns_get
41
43
  return unless columns
42
44
 
43
- from = unscoped.select(columns).arel.to_sql
45
+ rel = unscope(*UNSCOPING_VALUES).select(columns)
46
+ rel.instance_variable_get(:@values)[:joins] = joins if joins
47
+ from = rel.arel.to_sql
44
48
  as = @klass.table_name
45
49
  arel.from("(#{from}) #{as}")
46
50
  end
@@ -1,3 +1,3 @@
1
1
  module FromClauseTranslate
2
- VERSION = '0.1.9'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: from_clause_translate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Kushin