tunable 0.0.6 → 0.0.8
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 +4 -4
- data/lib/tunable/core_ext.rb +2 -0
- data/lib/tunable/model.rb +19 -11
- data/lib/tunable/version.rb +1 -1
- data/spec/tunable/defaults_spec.rb +1 -1
- data/spec/tunable/getters_spec.rb +2 -2
- data/spec/tunable/normalization_spec.rb +1 -1
- data/spec/tunable/setters_spec.rb +4 -2
- data/tunable.gemspec +3 -3
- metadata +18 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a58a7749222087c0b2fbb540247bb6a66dcaca507b4c13ba8dfc569ab68d9df
|
4
|
+
data.tar.gz: 0e6460f96413b4180fe1e1bbf196718ffff757ccf0f62b8ee14607538645b032
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eebb2f72d572f22e3adad48a71df09cf93c869d886cb186cc0928c4ad2ddecca82b5e38cd6aa718bcc888bde993325ae84f74735c36dc8046668843d39a0dc2a
|
7
|
+
data.tar.gz: 7065b6d54fe664411222a7df5dba4b2391d9515a1a3c07c7ca8ac2aec88e26ce472942b6c5800e1aa06b1787c89cb5bd5109aeb73616ceccf4fd584b644d970d
|
data/lib/tunable/core_ext.rb
CHANGED
data/lib/tunable/model.rb
CHANGED
@@ -120,7 +120,7 @@ module Tunable
|
|
120
120
|
|
121
121
|
if value === current
|
122
122
|
# puts 'Value is same as current'
|
123
|
-
|
123
|
+
changed_attributes.delete(field) # in case we had set if before
|
124
124
|
return
|
125
125
|
end
|
126
126
|
|
@@ -148,11 +148,19 @@ module Tunable
|
|
148
148
|
end
|
149
149
|
|
150
150
|
def settings_hash
|
151
|
+
|
152
|
+
@object_hashed_settings ||= Hasher.flatten(settings.reload, :context, :key)
|
153
|
+
|
151
154
|
if modified_settings.any?
|
152
|
-
|
155
|
+
modified_settings.each do |context, values|
|
156
|
+
values.each do |key, value|
|
157
|
+
@object_hashed_settings[context.to_sym] ||= {}
|
158
|
+
@object_hashed_settings[context.to_sym][key.to_sym] = value
|
159
|
+
end
|
160
|
+
end
|
153
161
|
end
|
154
162
|
|
155
|
-
@object_hashed_settings
|
163
|
+
@object_hashed_settings
|
156
164
|
end
|
157
165
|
|
158
166
|
def get_setting(context, key)
|
@@ -200,14 +208,14 @@ module Tunable
|
|
200
208
|
|
201
209
|
def queue_setting_for_update(context, key, val)
|
202
210
|
if self.class.main_settings_list.include?(key.to_sym)
|
203
|
-
|
211
|
+
changed_attributes[key.to_sym] = val if changed_attributes.include?(key.to_sym)
|
204
212
|
end
|
205
213
|
(modified_settings[context.to_sym] ||= {})[key.to_sym] = val
|
206
214
|
end
|
207
215
|
|
208
216
|
def queue_setting_for_deletion(context, key)
|
209
217
|
if self.class.main_settings_list.include?(key)
|
210
|
-
|
218
|
+
changed_attributes[key.to_sym] = nil if changed_attributes.include?(key.to_sym)
|
211
219
|
end
|
212
220
|
(deleted_settings[context.to_sym] ||= []) << key.to_sym
|
213
221
|
end
|
@@ -239,12 +247,12 @@ module Tunable
|
|
239
247
|
end
|
240
248
|
|
241
249
|
def delete_setting(context, key)
|
242
|
-
Tunable::Setting.
|
243
|
-
:
|
244
|
-
:
|
245
|
-
:
|
246
|
-
:
|
247
|
-
)
|
250
|
+
Tunable::Setting.where(
|
251
|
+
context: context.to_s,
|
252
|
+
key: key.to_s,
|
253
|
+
settable_type: self.class.model_name.to_s,
|
254
|
+
settable_id: self.id
|
255
|
+
).delete_all
|
248
256
|
end
|
249
257
|
|
250
258
|
def save_new_settings
|
data/lib/tunable/version.rb
CHANGED
@@ -12,13 +12,13 @@ describe 'basic setters' do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
|
15
|
-
it 'has getters
|
15
|
+
it 'has getters scoped by context' do
|
16
16
|
expect(@model.respond_to?(:website_super_mode)).to eq(true)
|
17
17
|
expect(@model.respond_to?(:website_super_mode=)).to eq(true)
|
18
18
|
|
19
19
|
expect(@model.website_super_mode).to eq(false)
|
20
20
|
expect(@model.website_super_mode = true).to eq(true)
|
21
|
-
expect(@model.website_super_mode).to eq(
|
21
|
+
expect(@model.website_super_mode).to eq(true)
|
22
22
|
@model.save
|
23
23
|
expect(@model.website_super_mode).to eq(true)
|
24
24
|
end
|
@@ -11,8 +11,10 @@ describe 'basic setters' do
|
|
11
11
|
|
12
12
|
it 'stores new setting, without saving' do
|
13
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)
|
14
|
+
# expect(@model.get_setting(:foo, :bar)).to eq(nil)
|
15
|
+
# expect(@model.settings_hash[:foo]).to eq(nil)
|
16
|
+
expect(@model.get_setting(:foo, :bar)).to eq(123)
|
17
|
+
expect(@model.settings_hash[:foo]).to eq({ bar: 123 })
|
16
18
|
@model.save
|
17
19
|
@model.reload
|
18
20
|
expect(@model.get_setting(:foo, :bar)).to eq(123)
|
data/tunable.gemspec
CHANGED
@@ -14,12 +14,12 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.required_rubygems_version = ">= 1.3.6"
|
15
15
|
# s.rubyforge_project = "tunable"
|
16
16
|
|
17
|
-
s.add_runtime_dependency "activerecord"
|
18
|
-
s.add_runtime_dependency "activesupport"
|
17
|
+
s.add_runtime_dependency "activerecord" #, "~> 4.2.x"
|
18
|
+
s.add_runtime_dependency "activesupport" #, "~> 4.2.x"
|
19
19
|
|
20
20
|
s.add_development_dependency "bundler" #, '~> 1.0', '>= 1.0.0'
|
21
21
|
s.add_development_dependency "rspec" #, '~> 3.0', '>= 3.0.0'
|
22
|
-
s.add_development_dependency "sqlite3"
|
22
|
+
s.add_development_dependency "sqlite3" #, '< 1.4.x'
|
23
23
|
|
24
24
|
s.files = `git ls-files`.split("\n")
|
25
25
|
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
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.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomás Pollak
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -70,16 +70,16 @@ dependencies:
|
|
70
70
|
name: sqlite3
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: '0'
|
83
83
|
description: Pluggable settings for your AR models.
|
84
84
|
email:
|
85
85
|
- tomas@forkhq.com
|
@@ -112,7 +112,7 @@ files:
|
|
112
112
|
homepage: https://github.com/tomas/tunable
|
113
113
|
licenses: []
|
114
114
|
metadata: {}
|
115
|
-
post_install_message:
|
115
|
+
post_install_message:
|
116
116
|
rdoc_options: []
|
117
117
|
require_paths:
|
118
118
|
- lib
|
@@ -127,9 +127,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
127
|
- !ruby/object:Gem::Version
|
128
128
|
version: 1.3.6
|
129
129
|
requirements: []
|
130
|
-
|
131
|
-
|
132
|
-
signing_key:
|
130
|
+
rubygems_version: 3.4.6
|
131
|
+
signing_key:
|
133
132
|
specification_version: 4
|
134
133
|
summary: Pluggable settings for your AR models.
|
135
134
|
test_files: []
|