from_clause_translate 0.1.9 → 0.2.0

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.
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