from_clause_translate 0.2.3 → 0.2.4
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89031b3fa713ad97c38aab959420f0c67544ceae17455030e176025c1f13d87e
|
4
|
+
data.tar.gz: c647f38f0dbd253869f34b0aa15469b93ac4b6e833c20cc46a6d1f37dd4d4508
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c47f449400389d4057665063c21befc1a9520d0a329c4efafd975ca939848fc5aaaa0ad3f0b6e1586f3e5d309288bfad721052b76c6f71d8ad6dd3b565d90b8
|
7
|
+
data.tar.gz: d38569db183c16dc2b6847096b365304f61a37c28a1de3c74d7034e4bcff600e3318bc13a1cf88bed39b8fda70a7ac6b8e769d3660f9f933b3cb26c62b5ee0ad
|
@@ -35,9 +35,8 @@ module ActiveRecord::Relation::Extended
|
|
35
35
|
rel = unscope(*UNSCOPING_VALUES).select(columns)
|
36
36
|
rel.instance_variable_set(:@translates_applied, true)
|
37
37
|
rel.instance_variable_get(:@values)[:joins] = joins if joins
|
38
|
-
|
39
|
-
|
40
|
-
@arel.from("(#{from}) #{as}")
|
38
|
+
replace_plurals_in_projections
|
39
|
+
@arel.from("(#{rel.arel.to_sql}) #{@klass.table_name}")
|
41
40
|
end
|
42
41
|
|
43
42
|
def translated_columns_build
|
@@ -51,9 +50,19 @@ module ActiveRecord::Relation::Extended
|
|
51
50
|
|
52
51
|
rel = spawn
|
53
52
|
rel.instance_variable_set(:@without_projections, true)
|
54
|
-
rel.add_translated_column column_name
|
53
|
+
rel.add_translated_column column_name if column_name
|
55
54
|
rel.perform_calculation operation, column_name
|
56
55
|
end
|
56
|
+
|
57
|
+
def replace_plurals_in_projections
|
58
|
+
@arel.projections.each do |column|
|
59
|
+
next unless column.is_a? String
|
60
|
+
|
61
|
+
name = column[0] == '"' ? column[1...-1] : column
|
62
|
+
plural = @klass::TRANSLATED_PLURALS[name.to_sym]
|
63
|
+
column.replace plural if plural
|
64
|
+
end
|
65
|
+
end
|
57
66
|
end
|
58
67
|
|
59
68
|
class ActiveRecord::Relation
|
@@ -23,7 +23,7 @@ module ClassMethods
|
|
23
23
|
self::TRANSLATED[plural] = true
|
24
24
|
column = plural.to_s.singularize.to_sym
|
25
25
|
selection = I18n.available_locales.map do |locale|
|
26
|
-
"#{column}_#{locale}"
|
26
|
+
"#{quoted_table_name}.\"#{column}_#{locale}\""
|
27
27
|
end.join ','
|
28
28
|
self::TRANSLATED_PLURALS[plural] = selection
|
29
29
|
I18n.available_locales.each do |locale|
|
@@ -50,17 +50,12 @@ class FromClauseTranslate::TranslatedColumnsBuilder
|
|
50
50
|
|
51
51
|
def arel_projection_translation column
|
52
52
|
column = column.name if column.is_a? Arel::Attributes::Attribute
|
53
|
-
column = column.to_s
|
53
|
+
column = column.to_s unless column.is_a? String
|
54
54
|
|
55
55
|
name = column.first == '"' ? column[1...-1] : column
|
56
56
|
return if @skip_translated.include? name
|
57
57
|
|
58
|
-
|
59
|
-
return column unless selection
|
60
|
-
|
61
|
-
plural = @klass::TRANSLATED_PLURALS[name.to_sym]
|
62
|
-
column.replace plural if plural
|
63
|
-
selection
|
58
|
+
translated_selection(name) || column
|
64
59
|
end
|
65
60
|
|
66
61
|
def add_translated_columns_from_cores
|
@@ -87,7 +82,7 @@ class FromClauseTranslate::TranslatedColumnsBuilder
|
|
87
82
|
|
88
83
|
name = child.left.name
|
89
84
|
selection = translated_selection name
|
90
|
-
@columns << selection
|
85
|
+
@columns << (selection || name)
|
91
86
|
end
|
92
87
|
end
|
93
88
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: from_clause_translate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roman Kushin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|