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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f225cd943a46e53efac5f09ab990d51e4fd27e593f682ebeca3b63801ebbf218
4
- data.tar.gz: 7f7ada6810840be255a3092d8373edb56009dc39bc3ca272b1bcec7fabdb8731
3
+ metadata.gz: 18948658c5465d7de3637533a887367622d7c1067d60cc67cb4a340936144fa7
4
+ data.tar.gz: 9caad8b2f1e03f15c862e4ae44b5f07f423ab21f2fbde7be9c0bf3ce2ceafa8c
5
5
  SHA512:
6
- metadata.gz: 9a8cbc09565c8b2d0aa675fde53896bc684875bbedab4c49d3c8c4f442c97b7f5249db92492fdc0d91990cede6ab78c61dcaf920f29957adc33443ebae62416e
7
- data.tar.gz: e74e60a6d936dac6c23f5aab964011801eab15f01a230c381550a5d9df1bce6a1bd7f4d7bb24717a25022026b79abc581a4d432ec10a76bcb8fb452b515e125d
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
@@ -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].present?
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)
@@ -1,5 +1,5 @@
1
1
  module Tunable
2
2
 
3
- VERSION = '0.0.4'
3
+ VERSION = '0.0.5'
4
4
 
5
5
  end
@@ -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
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: 2021-03-01 00:00:00.000000000 Z
11
+ date: 2022-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord