tunable 0.0.3 → 0.0.4

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
- SHA1:
3
- metadata.gz: 2a8d2bbef77fbf42971cd338f96724a7a7f12fed
4
- data.tar.gz: 183a44bcb7404f87d161c62ccf0e2ea8447a8f63
2
+ SHA256:
3
+ metadata.gz: f225cd943a46e53efac5f09ab990d51e4fd27e593f682ebeca3b63801ebbf218
4
+ data.tar.gz: 7f7ada6810840be255a3092d8373edb56009dc39bc3ca272b1bcec7fabdb8731
5
5
  SHA512:
6
- metadata.gz: cb42447896039571c0bdb446bcf494d1805d79e6b9d28abaf52775a1b72f4185ea95087805ef2ec2a8157498b8fdefb3ce77cdc303f32c5db067c8df0d9f727f
7
- data.tar.gz: a54821f4d0bb61710eeba8487c318eda54a661d11f9c148455918dbea0f7e3580eb30f900b0ffcb3e461c17ed96eb2526ebbb1ea511708a124234b6eb1f27d4a
6
+ metadata.gz: 9a8cbc09565c8b2d0aa675fde53896bc684875bbedab4c49d3c8c4f442c97b7f5249db92492fdc0d91990cede6ab78c61dcaf920f29957adc33443ebae62416e
7
+ data.tar.gz: e74e60a6d936dac6c23f5aab964011801eab15f01a230c381550a5d9df1bce6a1bd7f4d7bb24717a25022026b79abc581a4d432ec10a76bcb8fb452b515e125d
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source :rubygems
2
2
 
3
- # specified in tuktuk.gemspec
3
+ # specified in gemspec
4
4
  gemspec
data/README.md CHANGED
@@ -1,7 +1,16 @@
1
1
  Tunable
2
2
  =======
3
3
 
4
- A simple gem that provides scoped, pluggable settings for your AR 4+ models. Let's you keep things simple in your models by moving all customizable settings into a separate table, using a polymorphic Settings model.
4
+ A simple gem that provides scoped, pluggable settings for your AR 4+ models. Lets you keep things simple in your models by moving all customizable settings into a separate table, using a polymorphic Settings model.
5
+
6
+ Install
7
+ -------
8
+
9
+ In your Gemfile:
10
+
11
+ ```
12
+ gem 'tunable'
13
+ ```
5
14
 
6
15
  The code
7
16
  --------
@@ -94,7 +103,6 @@ class User < ActiveRecord::Base
94
103
  main_settings :layout_type => {
95
104
  :default => lambda { |user| user.is_admin? ? 'advanced' : 'simple' }
96
105
  }
97
-
98
106
  end
99
107
  ```
100
108
 
data/Rakefile CHANGED
@@ -1,2 +1,8 @@
1
1
  require 'bundler'
2
- Bundler::GemHelper.install_tasks
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ begin
5
+ require 'rspec/core/rake_task'
6
+ RSpec::Core::RakeTask.new(:spec)
7
+ rescue LoadError
8
+ end
data/lib/tunable/model.rb CHANGED
@@ -109,7 +109,7 @@ module Tunable
109
109
 
110
110
  if value === current
111
111
  # puts 'Value is same as current'
112
- send('changed_attributes').delete(field) # in case we had set if before
112
+ @changed_attributes.delete(field) # in case we had set if before
113
113
  return
114
114
  end
115
115
 
@@ -180,14 +180,14 @@ module Tunable
180
180
 
181
181
  def queue_setting_for_update(context, key, val)
182
182
  if self.class.main_settings_list.include?(key.to_sym)
183
- send('changed_attributes')[key.to_sym] = val
183
+ @changed_attributes[key.to_sym] = val if changed_attributes.include?(key.to_sym)
184
184
  end
185
185
  (modified_settings[context.to_sym] ||= {})[key.to_sym] = val
186
186
  end
187
187
 
188
188
  def queue_setting_for_deletion(context, key)
189
189
  if self.class.main_settings_list.include?(key)
190
- send('changed_attributes')[key.to_sym] = nil
190
+ @changed_attributes[key.to_sym] = nil if changed_attributes.include?(key.to_sym)
191
191
  end
192
192
  (deleted_settings[context.to_sym] ||= []) << key.to_sym
193
193
  end
@@ -201,7 +201,7 @@ module Tunable
201
201
  else
202
202
  current = main_settings[field.to_sym]
203
203
  return current if current.present? or !use_default
204
-
204
+
205
205
  if default = self.class.default_settings(:main)[field.to_sym]
206
206
  return default.is_a?(Proc) ? default.call(self) : default
207
207
  end
@@ -8,6 +8,7 @@ module Tunable
8
8
  def normalize_value(val)
9
9
  return 1 if TRUTHIES.include?(val.to_s)
10
10
  return 0 if FALSIES.include?(val.to_s)
11
+ return Integer(val) if is_integer?(val)
11
12
  return if val.blank? # false.blank? returns true so this needs to go after the 0 line
12
13
  val
13
14
  end
@@ -29,6 +30,15 @@ module Tunable
29
30
  end
30
31
  end
31
32
 
33
+ private
34
+
35
+ def is_integer?(val)
36
+ Integer(val)
37
+ true
38
+ rescue
39
+ false
40
+ end
41
+
32
42
  end
33
43
 
34
44
  end
@@ -1,5 +1,5 @@
1
1
  module Tunable
2
2
 
3
- VERSION = '0.0.3'
3
+ VERSION = '0.0.4'
4
4
 
5
5
  end
data/spec/spec_helper.rb CHANGED
@@ -5,7 +5,7 @@ require 'active_record'
5
5
  require 'tunable'
6
6
 
7
7
  ActiveRecord::Base.establish_connection(
8
- "adapter" => "sqlite3",
8
+ "adapter" => "sqlite3",
9
9
  "database" => ':memory:'
10
10
  )
11
11
 
@@ -100,7 +100,7 @@ describe 'defaults' do
100
100
 
101
101
  TEST_SETTINGS.each do |key, val|
102
102
  it "#{key} equals new val" do
103
- @foo.main_settings[key].should == @new_settings[key]
103
+ @foo.main_settings[key].should === @new_settings[key]
104
104
  end
105
105
  end
106
106
 
@@ -110,7 +110,7 @@ describe 'defaults' do
110
110
 
111
111
  TEST_SETTINGS.each do |key, val|
112
112
  it "#{key} equals new val" do
113
- @foo.get_main_setting(key).should == @new_settings[key]
113
+ @foo.get_main_setting(key).should === @new_settings[key]
114
114
  end
115
115
  end
116
116
  end
@@ -18,7 +18,7 @@ describe 'normalization' do
18
18
  :numbers => {
19
19
  :number_0 => '0',
20
20
  :number_1 => '1',
21
- :number_of_the_beast => '666'
21
+ :number_of_the_beast => 666
22
22
  },
23
23
  :onoffs => {
24
24
  :on => 'on',
@@ -57,7 +57,7 @@ describe 'normalization' do
57
57
  sql = "select `value` from `settings` where `settable_id` = #{id} and `context` = '#{context}' and `key` = '#{key}';"
58
58
  res = ActiveRecord::Base.connection.execute(sql)
59
59
  # puts res.inspect
60
- res[0]['value']
60
+ res[0] ? res[0]['value'] : nil
61
61
  end
62
62
 
63
63
  describe 'creating a new setting directly' do
@@ -188,10 +188,7 @@ describe 'normalization' do
188
188
  describe 'using settings relationship' do
189
189
 
190
190
  before :all do
191
-
192
- @model.update_attributes({
193
- :settings => VALUE_TYPES
194
- })
191
+ @model.update_attributes(:settings => VALUE_TYPES)
195
192
  end
196
193
 
197
194
  after :all do
@@ -292,7 +289,7 @@ describe 'normalization' do
292
289
  end
293
290
 
294
291
  it 'keeps 666 as 666' do
295
- get_value_from_model(:numbers, :number_of_the_beast).should == '666'
292
+ get_value_from_model(:numbers, :number_of_the_beast).should == 666
296
293
  end
297
294
 
298
295
  it 'keeps foo as foo' do
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.0.0"
18
- s.add_runtime_dependency "activesupport", "~> 4.0.0"
17
+ s.add_runtime_dependency "activerecord", "~> 4.2.x"
18
+ s.add_runtime_dependency "activesupport", "~> 4.2.x"
19
19
 
20
- s.add_development_dependency "bundler", '~> 1.0', '>= 1.0.0'
21
- s.add_development_dependency "rspec", '~> 3.0', '>= 3.0.0'
22
- s.add_development_dependency "sqlite3", '~> 1.0', '>= 1.0.0'
20
+ s.add_development_dependency "bundler" #, '~> 1.0', '>= 1.0.0'
21
+ s.add_development_dependency "rspec" #, '~> 3.0', '>= 3.0.0'
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,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tunable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
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: 2015-09-02 00:00:00.000000000 Z
11
+ date: 2021-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,88 +16,70 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 4.0.0
19
+ version: 4.2.x
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.0.0
26
+ version: 4.2.x
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.0.0
33
+ version: 4.2.x
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.0.0
40
+ version: 4.2.x
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.0'
48
45
  - - ">="
49
46
  - !ruby/object:Gem::Version
50
- version: 1.0.0
47
+ version: '0'
51
48
  type: :development
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
54
51
  requirements:
55
- - - "~>"
56
- - !ruby/object:Gem::Version
57
- version: '1.0'
58
52
  - - ">="
59
53
  - !ruby/object:Gem::Version
60
- version: 1.0.0
54
+ version: '0'
61
55
  - !ruby/object:Gem::Dependency
62
56
  name: rspec
63
57
  requirement: !ruby/object:Gem::Requirement
64
58
  requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '3.0'
68
59
  - - ">="
69
60
  - !ruby/object:Gem::Version
70
- version: 3.0.0
61
+ version: '0'
71
62
  type: :development
72
63
  prerelease: false
73
64
  version_requirements: !ruby/object:Gem::Requirement
74
65
  requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: '3.0'
78
66
  - - ">="
79
67
  - !ruby/object:Gem::Version
80
- version: 3.0.0
68
+ version: '0'
81
69
  - !ruby/object:Gem::Dependency
82
70
  name: sqlite3
83
71
  requirement: !ruby/object:Gem::Requirement
84
72
  requirements:
85
- - - "~>"
86
- - !ruby/object:Gem::Version
87
- version: '1.0'
88
- - - ">="
73
+ - - "<"
89
74
  - !ruby/object:Gem::Version
90
- version: 1.0.0
75
+ version: 1.4.x
91
76
  type: :development
92
77
  prerelease: false
93
78
  version_requirements: !ruby/object:Gem::Requirement
94
79
  requirements:
95
- - - "~>"
96
- - !ruby/object:Gem::Version
97
- version: '1.0'
98
- - - ">="
80
+ - - "<"
99
81
  - !ruby/object:Gem::Version
100
- version: 1.0.0
82
+ version: 1.4.x
101
83
  description: Pluggable settings for your AR models.
102
84
  email:
103
85
  - tomas@forkhq.com
@@ -145,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
127
  version: 1.3.6
146
128
  requirements: []
147
129
  rubyforge_project:
148
- rubygems_version: 2.4.5
130
+ rubygems_version: 2.7.3
149
131
  signing_key:
150
132
  specification_version: 4
151
133
  summary: Pluggable settings for your AR models.