tunable 0.0.5 → 0.0.6

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