has_setting 0.7.2 → 0.7.3
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 +4 -4
- data/lib/has_setting/ar_extensions.rb +3 -0
- data/lib/has_setting/version.rb +1 -1
- data/test/unit/has_setting_test.rb +23 -29
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c320931c608eaeac7b2134bd75561e57932a6cf8
|
4
|
+
data.tar.gz: 8b7b9a8993158a8b1ef7e584f5b63471c71a7649
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e83389a8001fd0906c1c0e53f8a4ed605115a29998d3f6c6d9f21075137f2a733707495c47fde702ce21683e0b0edfbdfa21c7bcf859ae7f12f7493c4da33f36
|
7
|
+
data.tar.gz: 602429b6032d14d649ac29f87f3885c4c678fdc4f7853e2460ec21aaa47344ac593f5963cbec60ea37f8fed8d6dd88a4a080c5b880334bb7530f67f1bef36813
|
@@ -59,6 +59,9 @@ module HasSetting
|
|
59
59
|
setting = self.settings.detect() {|item| item.name == name and item.locale.to_s == locale.to_s }
|
60
60
|
setting = self.settings.build(:name => name, locale: locale) if setting.blank?
|
61
61
|
setting.value = value
|
62
|
+
# mark model as changed to make sure model is saved so that after_save is triggered even if only settings change
|
63
|
+
# maybe there is a better way of doing this.
|
64
|
+
self.updated_at = Time.now if self.respond_to?(:updated_at)
|
62
65
|
end
|
63
66
|
|
64
67
|
def read_setting(name)
|
data/lib/has_setting/version.rb
CHANGED
@@ -6,19 +6,13 @@ class HasSettingTest < Test::Unit::TestCase
|
|
6
6
|
@bar = Bar.create!
|
7
7
|
@baz = Baz.create!
|
8
8
|
end
|
9
|
-
|
10
|
-
|
9
|
+
|
10
|
+
|
11
11
|
def test_setting_has_accessors
|
12
12
|
assert @foo.respond_to?(:setting_1)
|
13
13
|
assert @foo.respond_to?(:setting_1=)
|
14
14
|
end
|
15
|
-
|
16
|
-
|
17
|
-
def test_has_many
|
18
|
-
assert @foo.respond_to?(:settings)
|
19
|
-
assert @foo.settings.is_a?(Array)
|
20
|
-
end
|
21
|
-
|
15
|
+
|
22
16
|
def test_settings_are_destroyed
|
23
17
|
count_before = HasSetting::Setting.count
|
24
18
|
@foo.setting_1 = 10
|
@@ -26,9 +20,9 @@ class HasSettingTest < Test::Unit::TestCase
|
|
26
20
|
assert_equal(count_before + 1, HasSetting::Setting.count)
|
27
21
|
@foo.destroy
|
28
22
|
assert_equal(count_before, HasSetting::Setting.count)
|
29
|
-
|
23
|
+
|
30
24
|
end
|
31
|
-
|
25
|
+
|
32
26
|
def test_write_setting
|
33
27
|
count_before = HasSetting::Setting.count
|
34
28
|
@foo.write_setting('name', 'value1')
|
@@ -37,14 +31,14 @@ class HasSettingTest < Test::Unit::TestCase
|
|
37
31
|
setting = @foo.read_setting('name')
|
38
32
|
assert setting
|
39
33
|
assert_equal('value1', setting.value)
|
40
|
-
|
34
|
+
|
41
35
|
@foo.write_setting('name', 'value2')
|
42
|
-
assert_equal(count_before + 1, HasSetting::Setting.count)
|
36
|
+
assert_equal(count_before + 1, HasSetting::Setting.count)
|
43
37
|
setting = @foo.read_setting('name')
|
44
38
|
assert setting
|
45
39
|
assert_equal('value2', setting.value)
|
46
40
|
end
|
47
|
-
|
41
|
+
|
48
42
|
def test_setting_accessors
|
49
43
|
count_before = HasSetting::Setting.count
|
50
44
|
assert(!@foo.setting_1)
|
@@ -55,7 +49,7 @@ class HasSettingTest < Test::Unit::TestCase
|
|
55
49
|
@foo.setting_1 = 'bla'
|
56
50
|
assert_equal('bla', @foo.setting_1)
|
57
51
|
end
|
58
|
-
|
52
|
+
|
59
53
|
def test_different_classes_do_not_share_setting
|
60
54
|
count_before = HasSetting::Setting.count
|
61
55
|
@foo.setting_1 = 'foo'
|
@@ -63,43 +57,43 @@ class HasSettingTest < Test::Unit::TestCase
|
|
63
57
|
@bar.setting_1 = 'bar'
|
64
58
|
@bar.save!
|
65
59
|
assert_equal(count_before + 2, HasSetting::Setting.count)
|
66
|
-
|
60
|
+
|
67
61
|
assert_equal('foo', @foo.setting_1)
|
68
62
|
assert_equal('bar', @bar.setting_1)
|
69
63
|
end
|
70
64
|
|
71
|
-
|
65
|
+
|
72
66
|
def test_has_nil_setting
|
73
67
|
@foo.setting_1 = nil
|
74
68
|
assert(@foo.read_setting('setting_1'))
|
75
69
|
assert(!@foo.setting_1)
|
76
70
|
end
|
77
|
-
|
71
|
+
|
78
72
|
def test_options_on_getter
|
79
73
|
@foo.setting_1 = '12.3'
|
80
74
|
assert_equal('12.3', @foo.setting_1)
|
81
75
|
assert_equal(12, @foo.setting_1(:type => :int))
|
82
76
|
assert_equal(12.3, @foo.setting_1(:type => :float))
|
83
|
-
|
77
|
+
|
84
78
|
# Foo.setting_2 is a float setting. Override and get as string
|
85
79
|
@foo.setting_2 = 12.3
|
86
80
|
assert_equal('12.3', @foo.setting_2(:type => :string))
|
87
81
|
end
|
88
|
-
|
82
|
+
|
89
83
|
def test_different_classes_do_not_share_options()
|
90
84
|
@foo.setting_2 = 12.3
|
91
85
|
assert_equal(12.3, @foo.setting_2)
|
92
86
|
@bar.setting_2 = 12.3
|
93
87
|
assert_equal(12, @bar.setting_2)
|
94
88
|
end
|
95
|
-
|
89
|
+
|
96
90
|
def test_default_values()
|
97
91
|
assert_equal('def', @foo.with_default)
|
98
92
|
assert_equal('override def', @foo.with_default(:default => 'override def'))
|
99
93
|
@foo.with_default = 'not def'
|
100
94
|
assert_equal('not def', @foo.with_default)
|
101
95
|
end
|
102
|
-
|
96
|
+
|
103
97
|
def test_write_settings_without_saved_parent
|
104
98
|
my_foo = Foo.new
|
105
99
|
count_before = HasSetting::Setting.count
|
@@ -110,19 +104,19 @@ class HasSettingTest < Test::Unit::TestCase
|
|
110
104
|
assert_equal(count_before + 1, HasSetting::Setting.count)
|
111
105
|
assert_equal('radabumm', my_foo.with_default)
|
112
106
|
end
|
113
|
-
|
107
|
+
|
114
108
|
def test_not_everyone_has_settings_association
|
115
109
|
assert_equal(true, @foo.respond_to?(:settings))
|
116
110
|
assert_equal(true, @bar.respond_to?(:settings))
|
117
111
|
assert_equal(false, @baz.respond_to?(:settings))
|
118
112
|
end
|
119
|
-
|
120
|
-
|
113
|
+
|
114
|
+
|
121
115
|
def test_boolean_setting_without_default
|
122
116
|
assert_equal nil, @foo.setting_3
|
123
117
|
@foo.setting_3 = true
|
124
118
|
@foo.save!
|
125
|
-
|
119
|
+
|
126
120
|
@foo = Foo.find @foo.id
|
127
121
|
assert_equal true, @foo.setting_3
|
128
122
|
end
|
@@ -133,7 +127,7 @@ class HasSettingTest < Test::Unit::TestCase
|
|
133
127
|
@foo = Foo.find @foo.id
|
134
128
|
assert_equal true, @foo.setting_4
|
135
129
|
end
|
136
|
-
|
130
|
+
|
137
131
|
def test_boolean_setting_with_default_and_no_saving
|
138
132
|
assert_equal false, @foo.setting_4
|
139
133
|
@foo.setting_4 = true
|
@@ -153,6 +147,6 @@ class HasSettingTest < Test::Unit::TestCase
|
|
153
147
|
I18n.locale = :de
|
154
148
|
assert_equal 'setting de', @bar.setting_1
|
155
149
|
end
|
156
|
-
|
157
|
-
|
150
|
+
|
151
|
+
|
158
152
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_setting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simplificator GmbH
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-20 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Stores settings as key/value pairs in a settings table and provides accessors
|
15
15
|
for them on the owning object
|