tunable 0.0.4 → 0.0.5

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 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