tunable 0.0.7 → 0.1.0
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 +6 -6
- data/lib/tunable/model.rb +15 -6
- data/lib/tunable/normalizer.rb +11 -10
- data/lib/tunable/version.rb +1 -1
- data/spec/tunable/getters_spec.rb +2 -2
- data/spec/tunable/normalization_spec.rb +68 -58
- data/spec/tunable/querying_spec.rb +4 -4
- data/spec/tunable/setters_spec.rb +4 -2
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 844872db005ce594870ba86746820e4299bcecbecaba9606a6e4e7cc2a39177b
|
4
|
+
data.tar.gz: 5187361fbcfd3af0a04f5d02ed03e62b3496edd5f962e9d57a7579af4f914529
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 615660905363b14900b5d0773f5a90e836fbd3d5a83888dd52359515563d2715c41e74e8db749c6dc9af7acada93de6df0da4345d868c86df9e580a554994574
|
7
|
+
data.tar.gz: dcc95b1b796ef5c1ab334c1c3be6e02cddfd90266a61e508d970b73322bca2db0d529ea087fede88602d87d3cd48e64fd595ac4b8d3e3d2dc94af8d5e1d2b645
|
data/lib/tunable/core_ext.rb
CHANGED
@@ -12,14 +12,12 @@ module Tunable
|
|
12
12
|
columns_array = columns.map { |column| connection.quote_column_name(column) }
|
13
13
|
|
14
14
|
values_array = values.map do |arr|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
end
|
19
|
-
row_values.join(',')
|
15
|
+
arr.map do |val, i|
|
16
|
+
val == true ? '"true"' : val == false ? '"false"' : connection.quote(val)
|
17
|
+
end.join(',')
|
20
18
|
end
|
21
19
|
|
22
|
-
values_array = values_array.map{ |str| str.gsub(EmojiFix::REGEX, " ") }
|
20
|
+
values_array = values_array.map { |str| str.gsub(EmojiFix::REGEX, " ") }
|
23
21
|
insert_method = options[:method] || 'INSERT'
|
24
22
|
sql = "#{insert_method} INTO `#{self.table_name}` (#{columns_array.join(',')}) VALUES "
|
25
23
|
|
@@ -30,6 +28,8 @@ module Tunable
|
|
30
28
|
row_sql = "#{sql}(#{vals})"
|
31
29
|
connection.execute(row_sql)
|
32
30
|
end
|
31
|
+
# elsif ActiveRecord::Base.connection.adapter_name.downcase == 'postgres'
|
32
|
+
# TODO
|
33
33
|
else
|
34
34
|
sql += "(#{values_array.join('),(')})"
|
35
35
|
connection.execute(sql)
|
data/lib/tunable/model.rb
CHANGED
@@ -114,7 +114,7 @@ module Tunable
|
|
114
114
|
raise "Invalid value: #{raw_value}. Expected #{default.class}, got #{raw_value.class}"
|
115
115
|
end
|
116
116
|
|
117
|
-
value = Tunable.normalize_value(raw_value)
|
117
|
+
value = Tunable.normalize_value(raw_value, default.class)
|
118
118
|
current = Tunable.normalize_value(get_value_for(field, false)) # don't fallback to default
|
119
119
|
# debug "Setting #{field} to #{value} (#{value.class}), current: #{current} (#{current.class})"
|
120
120
|
|
@@ -148,18 +148,27 @@ module Tunable
|
|
148
148
|
end
|
149
149
|
|
150
150
|
def settings_hash
|
151
|
+
@object_hashed_settings ||= Hasher.flatten(settings.reload, :context, :key)
|
152
|
+
|
151
153
|
if modified_settings.any?
|
152
|
-
|
154
|
+
modified_settings.each do |context, values|
|
155
|
+
values.each do |key, value|
|
156
|
+
@object_hashed_settings[context.to_sym] ||= {}
|
157
|
+
@object_hashed_settings[context.to_sym][key.to_sym] = value
|
158
|
+
end
|
159
|
+
end
|
153
160
|
end
|
154
161
|
|
155
|
-
@object_hashed_settings
|
162
|
+
@object_hashed_settings
|
156
163
|
end
|
157
164
|
|
158
165
|
def get_setting(context, key)
|
159
166
|
val = settings_context(context)[key]
|
160
167
|
|
161
168
|
# if value is nil or no default is set, stop here
|
162
|
-
|
169
|
+
if !val.nil? or self.class.default_settings(context)[key.to_sym].nil?
|
170
|
+
return val
|
171
|
+
end
|
163
172
|
|
164
173
|
self.class.default_settings(context)[key.to_sym]
|
165
174
|
end
|
@@ -216,8 +225,8 @@ module Tunable
|
|
216
225
|
|
217
226
|
def get_value_for(field, use_default = true)
|
218
227
|
if instance_variable_defined?("@setting_main_#{field}")
|
219
|
-
# the instance var is already normalized
|
220
|
-
|
228
|
+
# the instance var is already normalized when called by the setter
|
229
|
+
instance_variable_get("@setting_main_#{field}")
|
221
230
|
else
|
222
231
|
current = main_settings[field.to_sym]
|
223
232
|
return current if current.present? or !use_default
|
data/lib/tunable/normalizer.rb
CHANGED
@@ -2,24 +2,25 @@ module Tunable
|
|
2
2
|
|
3
3
|
module Normalizer
|
4
4
|
|
5
|
-
TRUTHIES = ['true', 't', 'on', 'yes', 'y'
|
6
|
-
FALSIES = ['false', 'f', 'off', 'no', 'n'
|
5
|
+
TRUTHIES = ['true', 't', 'on', 'yes', 'y'].freeze
|
6
|
+
FALSIES = ['false', 'f', 'off', 'no', 'n'].freeze
|
7
7
|
|
8
|
-
def normalize_value(val)
|
9
|
-
|
10
|
-
return
|
8
|
+
def normalize_value(val, type = nil)
|
9
|
+
# if [TrueClass, FalseClass].include?(type)
|
10
|
+
# return false if val.to_s == '0'
|
11
|
+
# return true if val.to_s == '1'
|
12
|
+
# end
|
13
|
+
|
14
|
+
return true if TRUTHIES.include?(val.to_s)
|
15
|
+
return false if FALSIES.include?(val.to_s)
|
11
16
|
return Integer(val) if is_integer?(val)
|
12
17
|
return if val.blank? # false.blank? returns true so this needs to go after the 0 line
|
13
18
|
val
|
14
19
|
end
|
15
20
|
|
16
|
-
def getter_value(normalized)
|
17
|
-
return normalized === 1 ? true : normalized === 0 ? false : normalized
|
18
|
-
end
|
19
|
-
|
20
21
|
# Called from Setting#normalized_value and DeviceActions#toggle_action
|
21
22
|
def normalize_and_get(val)
|
22
|
-
|
23
|
+
normalize_value(val)
|
23
24
|
end
|
24
25
|
|
25
26
|
def matching_type(a, b)
|
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
|
@@ -32,6 +32,14 @@ describe 'normalization' do
|
|
32
32
|
}
|
33
33
|
}
|
34
34
|
|
35
|
+
let(:sql_true) {
|
36
|
+
ActiveRecord::Base.connection.adapter_name == 'SQLite' ? 't' : 'true'
|
37
|
+
}
|
38
|
+
|
39
|
+
let(:sql_false) {
|
40
|
+
ActiveRecord::Base.connection.adapter_name == 'SQLite' ? 'f' : 'false'
|
41
|
+
}
|
42
|
+
|
35
43
|
describe 'before saving to DB' do
|
36
44
|
|
37
45
|
after do
|
@@ -40,19 +48,19 @@ describe 'normalization' do
|
|
40
48
|
|
41
49
|
it 'the getter returns true for 1' do
|
42
50
|
@model.boolean_setting = 1
|
43
|
-
@model.boolean_setting.should ===
|
51
|
+
@model.boolean_setting.should === 1
|
44
52
|
end
|
45
53
|
|
46
54
|
it 'the getter returns false for 0' do
|
47
55
|
@model.boolean_setting = '0' # as string
|
48
|
-
@model.boolean_setting.should ===
|
56
|
+
@model.boolean_setting.should === 0
|
49
57
|
end
|
50
58
|
|
51
59
|
end
|
52
60
|
|
53
61
|
describe 'when inserting to DB' do
|
54
62
|
|
55
|
-
def
|
63
|
+
def get_value_from_db(context, key)
|
56
64
|
id = @model.id
|
57
65
|
sql = "select `value` from `settings` where `settable_id` = #{id} and `context` = '#{context}' and `key` = '#{key}';"
|
58
66
|
res = ActiveRecord::Base.connection.execute(sql)
|
@@ -79,59 +87,59 @@ describe 'normalization' do
|
|
79
87
|
end
|
80
88
|
|
81
89
|
it 'keeps 1 as 1' do
|
82
|
-
|
90
|
+
get_value_from_db(:numbers, :number_1).should == '1'
|
83
91
|
end
|
84
92
|
|
85
93
|
it 'keeps 0 as 0' do
|
86
|
-
|
94
|
+
get_value_from_db(:numbers, :number_0).should == '0'
|
87
95
|
end
|
88
96
|
|
89
97
|
it 'keeps 666 as 666' do
|
90
|
-
|
98
|
+
get_value_from_db(:numbers, :number_of_the_beast).should == '666'
|
91
99
|
end
|
92
100
|
|
93
101
|
it 'keeps foo as foo' do
|
94
|
-
|
102
|
+
get_value_from_db(:main, :foo).should == 'foo'
|
95
103
|
end
|
96
104
|
|
97
105
|
it 'normalizes booleany true values to 1' do
|
98
|
-
|
106
|
+
get_value_from_db(:main, :truthy).should == sql_true
|
99
107
|
end
|
100
108
|
|
101
109
|
it 'normalizes booleany false values to 0' do
|
102
|
-
|
110
|
+
get_value_from_db(:main, :falsy).should == sql_false
|
103
111
|
end
|
104
112
|
|
105
|
-
it 'normalizes t (from true) to
|
106
|
-
|
113
|
+
it 'normalizes t (from true) to true' do
|
114
|
+
get_value_from_db(:main, :t).should == sql_true
|
107
115
|
end
|
108
116
|
|
109
117
|
it 'normalizes f (from false) to 0' do
|
110
|
-
|
118
|
+
get_value_from_db(:main, :f).should == sql_false
|
111
119
|
end
|
112
120
|
|
113
121
|
it 'normalizes on to 1' do
|
114
|
-
|
122
|
+
get_value_from_db(:onoffs, :on).should == sql_true
|
115
123
|
end
|
116
124
|
|
117
125
|
it 'normalizes off to 0' do
|
118
|
-
|
126
|
+
get_value_from_db(:onoffs, :off).should == sql_false
|
119
127
|
end
|
120
128
|
|
121
129
|
it 'normalizes y to 1' do
|
122
|
-
|
130
|
+
get_value_from_db(:yesnoes, :y).should == sql_true
|
123
131
|
end
|
124
132
|
|
125
133
|
it 'normalizes n to 0' do
|
126
|
-
|
134
|
+
get_value_from_db(:yesnoes, :n).should == sql_false
|
127
135
|
end
|
128
136
|
|
129
137
|
it 'normalizes yes to 1' do
|
130
|
-
|
138
|
+
get_value_from_db(:yesnoes, :yes).should == sql_true
|
131
139
|
end
|
132
140
|
|
133
141
|
it 'normalizes no to 0' do
|
134
|
-
|
142
|
+
get_value_from_db(:yesnoes, :no).should == sql_false
|
135
143
|
end
|
136
144
|
|
137
145
|
end
|
@@ -140,47 +148,49 @@ describe 'normalization' do
|
|
140
148
|
|
141
149
|
it 'keeps 1 as 1' do
|
142
150
|
@model.update_attribute(:number_setting, 1)
|
143
|
-
|
151
|
+
get_value_from_db(:main, :number_setting).should == '1'
|
144
152
|
end
|
145
153
|
|
146
154
|
it 'keeps 0 as 0' do
|
147
155
|
@model.update_attribute(:number_setting, '0')
|
148
|
-
|
156
|
+
get_value_from_db(:main, :number_setting).should == '0'
|
149
157
|
end
|
150
158
|
|
151
159
|
it 'keeps foo as foo' do
|
152
160
|
@model.update_attribute(:other_setting, 'foo')
|
153
|
-
|
161
|
+
get_value_from_db(:main, :other_setting).should == 'foo'
|
154
162
|
end
|
155
163
|
|
156
164
|
it 'normalizes booleany true values to 1' do
|
157
|
-
@model.update_attribute(:boolean_setting, true)
|
158
|
-
|
165
|
+
# @model.update_attribute(:boolean_setting, true)
|
166
|
+
@model.boolean_setting = true
|
167
|
+
@model.save
|
168
|
+
get_value_from_db(:main, :boolean_setting).should == 'true'
|
159
169
|
end
|
160
170
|
|
161
171
|
it 'normalizes booleany false values to 0' do
|
162
|
-
@model.
|
163
|
-
|
172
|
+
@model.update(boolean_setting: false)
|
173
|
+
get_value_from_db(:main, :boolean_setting).should == 'false'
|
164
174
|
end
|
165
175
|
|
166
176
|
it 'normalizes on to 1' do
|
167
177
|
@model.update_attribute(:on_off_setting, 'on')
|
168
|
-
|
178
|
+
get_value_from_db(:main, :on_off_setting).should == 'true'
|
169
179
|
end
|
170
180
|
|
171
181
|
it 'normalizes off to 0' do
|
172
182
|
@model.update_attribute(:on_off_setting, 'off')
|
173
|
-
|
183
|
+
get_value_from_db(:main, :on_off_setting).should == 'false'
|
174
184
|
end
|
175
185
|
|
176
186
|
it 'normalizes on to 1' do
|
177
187
|
@model.update_attribute(:y_n_setting, 'y')
|
178
|
-
|
188
|
+
get_value_from_db(:main, :y_n_setting).should == 'true'
|
179
189
|
end
|
180
190
|
|
181
191
|
it 'normalizes off to 0' do
|
182
192
|
@model.update_attribute(:y_n_setting, 'n')
|
183
|
-
|
193
|
+
get_value_from_db(:main, :y_n_setting).should == 'false'
|
184
194
|
end
|
185
195
|
|
186
196
|
end
|
@@ -196,59 +206,59 @@ describe 'normalization' do
|
|
196
206
|
end
|
197
207
|
|
198
208
|
it 'keeps 1 as 1' do
|
199
|
-
|
209
|
+
get_value_from_db(:numbers, :number_1).should == '1'
|
200
210
|
end
|
201
211
|
|
202
212
|
it 'keeps 0 as 0' do
|
203
|
-
|
213
|
+
get_value_from_db(:numbers, :number_0).should == '0'
|
204
214
|
end
|
205
215
|
|
206
216
|
it 'keeps 666 as 666' do
|
207
|
-
|
217
|
+
get_value_from_db(:numbers, :number_of_the_beast).should == '666'
|
208
218
|
end
|
209
219
|
|
210
220
|
it 'keeps foo as foo' do
|
211
|
-
|
221
|
+
get_value_from_db(:main, :foo).should == 'foo'
|
212
222
|
end
|
213
223
|
|
214
224
|
it 'normalizes booleany true values to 1' do
|
215
|
-
|
225
|
+
get_value_from_db(:main, :truthy).should == 'true'
|
216
226
|
end
|
217
227
|
|
218
228
|
it 'normalizes booleany false values to 0' do
|
219
|
-
|
229
|
+
get_value_from_db(:main, :falsy).should == 'false'
|
220
230
|
end
|
221
231
|
|
222
232
|
it 'normalizes t (from true) to 1' do
|
223
|
-
|
233
|
+
get_value_from_db(:main, :t).should == 'true'
|
224
234
|
end
|
225
235
|
|
226
236
|
it 'normalizes f (from false) to 0' do
|
227
|
-
|
237
|
+
get_value_from_db(:main, :f).should == 'false'
|
228
238
|
end
|
229
239
|
|
230
240
|
it 'normalizes on to 1' do
|
231
|
-
|
241
|
+
get_value_from_db(:onoffs, :on).should == 'true'
|
232
242
|
end
|
233
243
|
|
234
244
|
it 'normalizes off to 0' do
|
235
|
-
|
245
|
+
get_value_from_db(:onoffs, :off).should == 'false'
|
236
246
|
end
|
237
247
|
|
238
248
|
it 'normalizes y to 1' do
|
239
|
-
|
249
|
+
get_value_from_db(:yesnoes, :y).should == 'true'
|
240
250
|
end
|
241
251
|
|
242
252
|
it 'normalizes n to 0' do
|
243
|
-
|
253
|
+
get_value_from_db(:yesnoes, :n).should == 'false'
|
244
254
|
end
|
245
255
|
|
246
256
|
it 'normalizes yes to 1' do
|
247
|
-
|
257
|
+
get_value_from_db(:yesnoes, :yes).should == 'true'
|
248
258
|
end
|
249
259
|
|
250
260
|
it 'normalizes no to 0' do
|
251
|
-
|
261
|
+
get_value_from_db(:yesnoes, :no).should == 'false'
|
252
262
|
end
|
253
263
|
|
254
264
|
end
|
@@ -274,66 +284,66 @@ describe 'normalization' do
|
|
274
284
|
end
|
275
285
|
end
|
276
286
|
|
277
|
-
def
|
287
|
+
def get_value_from_db_from_model(context, key)
|
278
288
|
settings = @model.reload.settings_hash
|
279
289
|
ctx = "raw_#{context}".to_sym
|
280
290
|
settings[ctx][key]
|
281
291
|
end
|
282
292
|
|
283
293
|
it 'normalizes 1 to true' do
|
284
|
-
|
294
|
+
get_value_from_db_from_model(:numbers, :number_1).should === 1
|
285
295
|
end
|
286
296
|
|
287
297
|
it 'normalizes 0 to false' do
|
288
|
-
|
298
|
+
get_value_from_db_from_model(:numbers, :number_0).should === 0
|
289
299
|
end
|
290
300
|
|
291
301
|
it 'keeps 666 as 666' do
|
292
|
-
|
302
|
+
get_value_from_db_from_model(:numbers, :number_of_the_beast).should == 666
|
293
303
|
end
|
294
304
|
|
295
305
|
it 'keeps foo as foo' do
|
296
|
-
|
306
|
+
get_value_from_db_from_model(:main, :foo).should == 'foo'
|
297
307
|
end
|
298
308
|
|
299
309
|
it 'normalizes booleany true values to true' do
|
300
|
-
|
310
|
+
get_value_from_db_from_model(:main, :truthy).should === true
|
301
311
|
end
|
302
312
|
|
303
313
|
it 'normalizes booleany false values to false' do
|
304
|
-
|
314
|
+
get_value_from_db_from_model(:main, :falsy).should === false
|
305
315
|
end
|
306
316
|
|
307
317
|
it 'normalizes t (from true) to true' do
|
308
|
-
|
318
|
+
get_value_from_db_from_model(:main, :t).should === true
|
309
319
|
end
|
310
320
|
|
311
321
|
it 'normalizes f (from false) to false' do
|
312
|
-
|
322
|
+
get_value_from_db_from_model(:main, :f).should === false
|
313
323
|
end
|
314
324
|
|
315
325
|
it 'normalizes on to true' do
|
316
|
-
|
326
|
+
get_value_from_db_from_model(:onoffs, :on).should === true
|
317
327
|
end
|
318
328
|
|
319
329
|
it 'normalizes off to false' do
|
320
|
-
|
330
|
+
get_value_from_db_from_model(:onoffs, :off).should === false
|
321
331
|
end
|
322
332
|
|
323
333
|
it 'normalizes y to true' do
|
324
|
-
|
334
|
+
get_value_from_db_from_model(:yesnoes, :y).should === true
|
325
335
|
end
|
326
336
|
|
327
337
|
it 'normalizes n to false' do
|
328
|
-
|
338
|
+
get_value_from_db_from_model(:yesnoes, :n).should === false
|
329
339
|
end
|
330
340
|
|
331
341
|
it 'normalizes yes to true' do
|
332
|
-
|
342
|
+
get_value_from_db_from_model(:yesnoes, :yes).should === true
|
333
343
|
end
|
334
344
|
|
335
345
|
it 'normalizes no to false' do
|
336
|
-
|
346
|
+
get_value_from_db_from_model(:yesnoes, :no).should === false
|
337
347
|
end
|
338
348
|
|
339
349
|
end
|
@@ -125,8 +125,8 @@ describe 'setting on/off?' do
|
|
125
125
|
end
|
126
126
|
|
127
127
|
describe '1' do
|
128
|
-
it 'returns
|
129
|
-
@model.setting_on?(:numbers, :number_1).should ===
|
128
|
+
it 'returns false' do
|
129
|
+
@model.setting_on?(:numbers, :number_1).should === false
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
@@ -195,8 +195,8 @@ describe 'setting on/off?' do
|
|
195
195
|
end
|
196
196
|
|
197
197
|
describe '0' do
|
198
|
-
it 'returns
|
199
|
-
@model.setting_off?(:numbers, :number_0).should ===
|
198
|
+
it 'returns false' do
|
199
|
+
@model.setting_off?(:numbers, :number_0).should === false
|
200
200
|
end
|
201
201
|
end
|
202
202
|
|
@@ -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)
|
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
|
+
version: 0.1.0
|
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-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -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
|
@@ -128,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
128
128
|
version: 1.3.6
|
129
129
|
requirements: []
|
130
130
|
rubygems_version: 3.4.6
|
131
|
-
signing_key:
|
131
|
+
signing_key:
|
132
132
|
specification_version: 4
|
133
133
|
summary: Pluggable settings for your AR models.
|
134
134
|
test_files: []
|