tunable 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/tunable/model.rb +9 -0
- data/lib/tunable/setting.rb +1 -1
- data/lib/tunable/version.rb +1 -1
- data/spec/tunable/setters_spec.rb +43 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18948658c5465d7de3637533a887367622d7c1067d60cc67cb4a340936144fa7
|
4
|
+
data.tar.gz: 9caad8b2f1e03f15c862e4ae44b5f07f423ab21f2fbde7be9c0bf3ce2ceafa8c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1843588f136e89158718d78765dfede4be12a7748ecb6e2572c8e349b0b847209ab7f8b2e7239529eab4fc1885e0c3ee37b96f437f866d8230930efc1216dc38
|
7
|
+
data.tar.gz: 204320680e9719bcb102c25c166bb20c1df168b98fc788b2476e9106e0f81c352c01a4ad656747d811ac5b4a5d6b8207ab2cb8cd86f4e606f00ef711381dd82e
|
data/lib/tunable/model.rb
CHANGED
@@ -153,6 +153,15 @@ module Tunable
|
|
153
153
|
self.class.default_settings(context)[key.to_sym]
|
154
154
|
end
|
155
155
|
|
156
|
+
def set_setting(context, key, val)
|
157
|
+
obj = { context => { key => val } }
|
158
|
+
self.settings = obj
|
159
|
+
end
|
160
|
+
|
161
|
+
def remove_setting(context, key)
|
162
|
+
set_setting(context, key, nil)
|
163
|
+
end
|
164
|
+
|
156
165
|
def get_main_setting(key)
|
157
166
|
get_setting(:main, key)
|
158
167
|
end
|
data/lib/tunable/setting.rb
CHANGED
@@ -26,7 +26,7 @@ module Tunable
|
|
26
26
|
|
27
27
|
hash.each do |context, fields|
|
28
28
|
fields.each do |key, val|
|
29
|
-
if val.blank? && object.settings_context(context.to_sym)[key.to_sym].
|
29
|
+
if val.blank? && !object.settings_context(context.to_sym)[key.to_sym].nil?
|
30
30
|
|
31
31
|
# setting was present and now deleted
|
32
32
|
object.queue_setting_for_deletion(context, key)
|
data/lib/tunable/version.rb
CHANGED
@@ -1,5 +1,48 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
2
|
|
3
|
+
describe 'basic setters' do
|
4
|
+
|
5
|
+
before :all do
|
6
|
+
load_main_settings!
|
7
|
+
@model = TunableModel.create(name: "Yay, I'm settable!")
|
8
|
+
end
|
9
|
+
|
10
|
+
describe '#set_setting' do
|
11
|
+
|
12
|
+
it 'stores new setting, without saving' do
|
13
|
+
@model.set_setting(:foo, :bar, 123)
|
14
|
+
expect(@model.get_setting(:foo, :bar)).to eq(nil)
|
15
|
+
expect(@model.settings_hash[:foo]).to eq(nil)
|
16
|
+
@model.save
|
17
|
+
@model.reload
|
18
|
+
expect(@model.get_setting(:foo, :bar)).to eq(123)
|
19
|
+
expect(@model.settings_hash[:foo]).to eq({ bar: 123 })
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '#remove_setting' do
|
25
|
+
|
26
|
+
it 'stores new setting' do
|
27
|
+
@model.set_setting(:foo, :bar, 123)
|
28
|
+
@model.set_setting(:foo, :test, false)
|
29
|
+
@model.save
|
30
|
+
@model.reload
|
31
|
+
@model.remove_setting(:foo, :bar)
|
32
|
+
expect(@model.get_setting(:foo, :bar)).to eq(123)
|
33
|
+
@model.save
|
34
|
+
@model.reload
|
35
|
+
expect(@model.settings_hash[:foo]).to eq({ test: false })
|
36
|
+
@model.remove_setting(:foo, :test)
|
37
|
+
@model.save
|
38
|
+
@model.reload
|
39
|
+
expect(@model.settings_hash[:foo]).to eq(nil)
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
3
46
|
describe 'main_setting setters' do
|
4
47
|
|
5
48
|
before :all do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tunable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomás Pollak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|