tunable 0.0.5 → 0.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 18948658c5465d7de3637533a887367622d7c1067d60cc67cb4a340936144fa7
4
- data.tar.gz: 9caad8b2f1e03f15c862e4ae44b5f07f423ab21f2fbde7be9c0bf3ce2ceafa8c
3
+ metadata.gz: c4c0d267a72ab0649509f7250beedfcb46b7959fe5e5c8e28e90d2bb8f864bb1
4
+ data.tar.gz: e5fe14c7102a807d1c2b010bfeba10de11e8428ce9fb1b2e72b224dd50754a84
5
5
  SHA512:
6
- metadata.gz: 1843588f136e89158718d78765dfede4be12a7748ecb6e2572c8e349b0b847209ab7f8b2e7239529eab4fc1885e0c3ee37b96f437f866d8230930efc1216dc38
7
- data.tar.gz: 204320680e9719bcb102c25c166bb20c1df168b98fc788b2476e9106e0f81c352c01a4ad656747d811ac5b4a5d6b8207ab2cb8cd86f4e606f00ef711381dd82e
6
+ metadata.gz: ef8cd2b1b4cd45432b3934e37999599f716988bd9e84baf39e6843d352863230eb4b65f0e6e4fb17aa694c15cd7172ad6ba3f2e37a547a40ec59a0c62f1e8672
7
+ data.tar.gz: 2a48932f5bb4ec88ed6fa5589cc2b41b61d8a2e199fffdb1c26baee32d7c9b854ddaca8b9e4484bc13208c0e4eaa55bed93fff1a5054ff3a34782bc3c850f654
data/lib/tunable/model.rb CHANGED
@@ -57,6 +57,17 @@ module Tunable
57
57
  default = opts
58
58
  end
59
59
 
60
+ getter = "#{name}_#{field}"
61
+
62
+ define_method getter do
63
+ get_setting(name, field)
64
+ end
65
+
66
+ define_method "#{getter}=" do |value|
67
+ # self.settings = { name => { field => val } }
68
+ set_setting(name, field, value)
69
+ end
70
+
60
71
  set_default_setting(name, field, default) unless default.nil?
61
72
  end
62
73
  end
@@ -1,5 +1,3 @@
1
1
  module Tunable
2
-
3
- VERSION = '0.0.5'
4
-
2
+ VERSION = '0.0.6'
5
3
  end
@@ -0,0 +1,26 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe 'basic setters' do
4
+
5
+ before :all do
6
+ TunableModel.has_settings \
7
+ :website => {
8
+ super_mode: { default: false }
9
+ }
10
+
11
+ @model = TunableModel.create(name: "Yay, I'm settable!")
12
+ end
13
+
14
+
15
+ it 'has getters setters scoped by context' do
16
+ expect(@model.respond_to?(:website_super_mode)).to eq(true)
17
+ expect(@model.respond_to?(:website_super_mode=)).to eq(true)
18
+
19
+ expect(@model.website_super_mode).to eq(false)
20
+ expect(@model.website_super_mode = true).to eq(true)
21
+ expect(@model.website_super_mode).to eq(false)
22
+ @model.save
23
+ expect(@model.website_super_mode).to eq(true)
24
+ end
25
+
26
+ end
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.5
4
+ version: 0.0.6
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: 2022-05-30 00:00:00.000000000 Z
11
+ date: 2022-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -104,6 +104,7 @@ files:
104
104
  - spec/schema.rb
105
105
  - spec/spec_helper.rb
106
106
  - spec/tunable/defaults_spec.rb
107
+ - spec/tunable/getters_spec.rb
107
108
  - spec/tunable/normalization_spec.rb
108
109
  - spec/tunable/querying_spec.rb
109
110
  - spec/tunable/setters_spec.rb