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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4c0d267a72ab0649509f7250beedfcb46b7959fe5e5c8e28e90d2bb8f864bb1
4
- data.tar.gz: e5fe14c7102a807d1c2b010bfeba10de11e8428ce9fb1b2e72b224dd50754a84
3
+ metadata.gz: 2a58a7749222087c0b2fbb540247bb6a66dcaca507b4c13ba8dfc569ab68d9df
4
+ data.tar.gz: 0e6460f96413b4180fe1e1bbf196718ffff757ccf0f62b8ee14607538645b032
5
5
  SHA512:
6
- metadata.gz: ef8cd2b1b4cd45432b3934e37999599f716988bd9e84baf39e6843d352863230eb4b65f0e6e4fb17aa694c15cd7172ad6ba3f2e37a547a40ec59a0c62f1e8672
7
- data.tar.gz: 2a48932f5bb4ec88ed6fa5589cc2b41b61d8a2e199fffdb1c26baee32d7c9b854ddaca8b9e4484bc13208c0e4eaa55bed93fff1a5054ff3a34782bc3c850f654
6
+ metadata.gz: eebb2f72d572f22e3adad48a71df09cf93c869d886cb186cc0928c4ad2ddecca82b5e38cd6aa718bcc888bde993325ae84f74735c36dc8046668843d39a0dc2a
7
+ data.tar.gz: 7065b6d54fe664411222a7df5dba4b2391d9515a1a3c07c7ca8ac2aec88e26ce472942b6c5800e1aa06b1787c89cb5bd5109aeb73616ceccf4fd584b644d970d
@@ -30,6 +30,8 @@ module Tunable
30
30
  row_sql = "#{sql}(#{vals})"
31
31
  connection.execute(row_sql)
32
32
  end
33
+ # elsif ActiveRecord::Base.connection.adapter_name.downcase == 'postgres'
34
+ # TODO
33
35
  else
34
36
  sql += "(#{values_array.join('),(')})"
35
37
  connection.execute(sql)
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
- @changed_attributes.delete(field) # in case we had set if before
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
- puts "Settings have been changed. Hash will be incomplete."
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 ||= Hasher.flatten(settings.reload, :context, :key)
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
- @changed_attributes[key.to_sym] = val if changed_attributes.include?(key.to_sym)
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
- @changed_attributes[key.to_sym] = nil if changed_attributes.include?(key.to_sym)
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.delete_all(
243
- :context => context.to_s,
244
- :key => key.to_s,
245
- :settable_type => self.class.model_name.to_s,
246
- :settable_id => self.id
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
@@ -1,3 +1,3 @@
1
1
  module Tunable
2
- VERSION = '0.0.6'
2
+ VERSION = '0.0.8'
3
3
  end
@@ -93,7 +93,7 @@ describe 'defaults' do
93
93
  }
94
94
 
95
95
  @foo = TunableModel.new
96
- @foo.update_attributes(@new_settings)
96
+ @foo.update(@new_settings)
97
97
  end
98
98
 
99
99
  describe 'settings_hash' do
@@ -12,13 +12,13 @@ describe 'basic setters' do
12
12
  end
13
13
 
14
14
 
15
- it 'has getters setters scoped by context' do
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(false)
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
@@ -188,7 +188,7 @@ describe 'normalization' do
188
188
  describe 'using settings relationship' do
189
189
 
190
190
  before :all do
191
- @model.update_attributes(:settings => VALUE_TYPES)
191
+ @model.update(:settings => VALUE_TYPES)
192
192
  end
193
193
 
194
194
  after :all do
@@ -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", "~> 4.2.x"
18
- s.add_runtime_dependency "activesupport", "~> 4.2.x"
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", '< 1.4.x'
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.6
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: 2022-11-11 00:00:00.000000000 Z
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: 4.2.x
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: 4.2.x
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: 4.2.x
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: 4.2.x
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: 1.4.x
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: 1.4.x
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
- rubyforge_project:
131
- rubygems_version: 2.7.3
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: []