has_localization_table 0.3.5 → 0.3.6
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 +8 -8
- data/has_localization_table.gemspec +1 -0
- data/lib/has_localization_table/active_record/relation.rb +1 -1
- data/lib/has_localization_table/active_record/validations.rb +1 -1
- data/lib/has_localization_table/version.rb +1 -1
- data/spec/active_record/attributes_spec.rb +6 -0
- data/spec/active_record/{validation_spec.rb → validations_spec.rb} +19 -12
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZTA1YWMxMTY1ODUxODQ4ZDVkZjU3Yjk2OTkyZmEwNmM1NzU2NWY4OQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OGYwY2ZkNDFkY2E0YTg1OWMyN2FlNGNmMmRjOTM2YTRkMTI3NjViOA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZWUzMTFjZDg0ZDZlMjUwMTMyYTFiOWQ4ZDczMTZlMTQ1NTRmMzk0NGY4NzBh
|
10
|
+
NGM2NTcxYzk4ODc1ZjlmNDBjNjdlYzE2Y2M5MTRhOTliMTY1NGJiY2U2N2Rj
|
11
|
+
N2Q2ODNhZGU3ZmMwNDgyOGI5NjA2ODlmMjljOGFmMjQzZjk0MTU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MGZlNWM1MmMzOGQ4OTJhYzQ2OWU2ZDVkNzc1MjBmYTQ5YmY0YTRlZDg5MTVh
|
14
|
+
Y2JkYzU5ZGRiMjc5MjY1MGFkYWNjNzhlODM0ZjJkYjkwYjAzZDE0ZDU1OWQy
|
15
|
+
YzU0MDJlMTAyNmQ0YjU4MDY4YmJiNjFiYWEzYWI0MGEyZjc1NTI=
|
@@ -46,7 +46,7 @@ module HasLocalizationTable
|
|
46
46
|
|
47
47
|
# Collect all localizations for the object
|
48
48
|
def create_has_many_association
|
49
|
-
self.has_many localization_association_name, localization_table_options.except(:association_name, :required, :optional, :has_one) do
|
49
|
+
self.has_many localization_association_name, localization_table_options.except(:association_name, :required, :optional, :has_one).reverse_merge(autosave: true) do
|
50
50
|
def for_locale(locale)
|
51
51
|
# where(HasLocalizationTable.locale_foreign_key => locale).first
|
52
52
|
select{ |s| s.send(HasLocalizationTable.locale_foreign_key) == locale }.first
|
@@ -13,7 +13,7 @@ module HasLocalizationTable
|
|
13
13
|
|
14
14
|
# Add validation to ensure a string for the primary locale exists if the string is required
|
15
15
|
validate do
|
16
|
-
if localization_table_options
|
16
|
+
if localization_table_options.fetch(:required, false)
|
17
17
|
errors.add(localization_association_name, :primary_lang_string_required) unless localization_association.any? do |string|
|
18
18
|
string.send(HasLocalizationTable.locale_foreign_key) == HasLocalizationTable.primary_locale.id
|
19
19
|
end
|
@@ -32,6 +32,12 @@ describe HasLocalizationTable do
|
|
32
32
|
a.name.must_equal "Test"
|
33
33
|
a.description.must_equal "Description"
|
34
34
|
end
|
35
|
+
|
36
|
+
it "should save with update_attributes" do
|
37
|
+
a.save!
|
38
|
+
a.update_attributes!(name: "Test 2")
|
39
|
+
Article.find(a.id).name.must_equal "Test 2"
|
40
|
+
end
|
35
41
|
|
36
42
|
it "should create mutator methods" do
|
37
43
|
a.name = "Changed"
|
@@ -15,19 +15,26 @@ describe HasLocalizationTable do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
let(:a) { Article.new(name: "Test", description: "Description") }
|
18
|
-
|
19
|
-
|
20
|
-
Article.has_localization_table required: true
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
18
|
+
|
19
|
+
describe 'when the required option is true' do
|
20
|
+
before { Article.has_localization_table required: true }
|
21
|
+
|
22
|
+
it "should add an error to the base class if a string is not given" do
|
23
|
+
Article.has_localization_table required: true
|
24
|
+
a = Article.new
|
25
|
+
refute a.valid?
|
26
|
+
a.errors.wont_be_empty
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should add an error to the association column if a string is not given' do
|
30
|
+
Article.has_localization_table required: true
|
31
|
+
a = Article.new(description: "Wishing the world hello!")
|
32
|
+
s = a.localizations.first
|
33
|
+
refute s.valid?
|
34
|
+
s.errors[:name].wont_be_empty
|
35
|
+
end
|
29
36
|
end
|
30
|
-
|
37
|
+
|
31
38
|
it "should not add validations if given required: false" do
|
32
39
|
Article.has_localization_table required: false
|
33
40
|
a = Article.new
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_localization_table
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Vandersluis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06
|
11
|
+
date: 2014-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
type: :runtime
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ! '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
name: rake
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: Automatically sets up usage of a relational table to contain user-created
|
70
84
|
multi-locale string attributes
|
71
85
|
email:
|
@@ -95,7 +109,7 @@ files:
|
|
95
109
|
- spec/active_record/finder_method_spec.rb
|
96
110
|
- spec/active_record/ordered_by_spec.rb
|
97
111
|
- spec/active_record/relation_spec.rb
|
98
|
-
- spec/active_record/
|
112
|
+
- spec/active_record/validations_spec.rb
|
99
113
|
- spec/active_record_spec.rb
|
100
114
|
- spec/spec_helper.rb
|
101
115
|
- spec/support/setup.rb
|
@@ -128,7 +142,7 @@ test_files:
|
|
128
142
|
- spec/active_record/finder_method_spec.rb
|
129
143
|
- spec/active_record/ordered_by_spec.rb
|
130
144
|
- spec/active_record/relation_spec.rb
|
131
|
-
- spec/active_record/
|
145
|
+
- spec/active_record/validations_spec.rb
|
132
146
|
- spec/active_record_spec.rb
|
133
147
|
- spec/spec_helper.rb
|
134
148
|
- spec/support/setup.rb
|