has_localization_table 0.1.0 → 0.1.1
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.
@@ -3,16 +3,13 @@ module HasLocalizationTable
|
|
3
3
|
def has_localization_table(*args)
|
4
4
|
options = args.extract_options!
|
5
5
|
options[:association_name] = args.first || HasLocalizationTable.default_association_name
|
6
|
+
options[:class_name] = options[:class_name].name if options[:class_name].respond_to?(:name)
|
6
7
|
|
7
8
|
class_attribute :localization_table_options
|
8
|
-
self.localization_table_options = { dependent: :delete_all, class_name:
|
9
|
+
self.localization_table_options = { dependent: :delete_all, class_name: self.name + HasLocalizationTable.class_suffix }.merge(options)
|
9
10
|
|
10
11
|
extend(ClassMethods)
|
11
12
|
include(InstanceMethods)
|
12
13
|
end
|
13
|
-
|
14
|
-
def localization_class
|
15
|
-
(self.name + HasLocalizationTable.class_suffix).constantize
|
16
|
-
end
|
17
14
|
end
|
18
15
|
end
|
@@ -42,6 +42,10 @@ module HasLocalizationTable
|
|
42
42
|
alias_method :"with_#{klass.localization_association_name}", :with_localizations
|
43
43
|
end
|
44
44
|
|
45
|
+
def localization_class
|
46
|
+
localization_table_options[:class_name].constantize
|
47
|
+
end
|
48
|
+
|
45
49
|
def localization_association_name
|
46
50
|
localization_table_options[:association_name]
|
47
51
|
end
|
@@ -96,11 +100,13 @@ module HasLocalizationTable
|
|
96
100
|
end
|
97
101
|
|
98
102
|
def with_localizations
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
103
|
+
lcat = localization_class.arel_table
|
104
|
+
|
105
|
+
scoped.joins(
|
106
|
+
arel_table.join(lcat, Arel::Nodes::OuterJoin).
|
107
|
+
on(lcat[:"#{self.name.underscore}_id"].eq(arel_table[self.primary_key]).and(lcat[HasLocalizationTable.locale_foreign_key].eq(HasLocalizationTable.current_locale.id))).
|
108
|
+
join_sql
|
109
|
+
)
|
104
110
|
end
|
105
111
|
|
106
112
|
private
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_localization_table
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
12
|
+
date: 2012-08-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &11607560 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *11607560
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activerecord
|
27
|
-
requirement: &
|
27
|
+
requirement: &11606680 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 3.0.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *11606680
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: minitest
|
38
|
-
requirement: &
|
38
|
+
requirement: &11606080 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *11606080
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: sqlite3
|
49
|
-
requirement: &
|
49
|
+
requirement: &11605360 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *11605360
|
58
58
|
description: Automatically sets up usage of a relational table to contain user-created
|
59
59
|
multi-locale string attributes
|
60
60
|
email:
|