settings-goo 0.3.0 → 0.3.1

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.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/lib/settings.rb +13 -10
  3. data/settings-goo.gemspec +1 -1
  4. metadata +1 -1
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.3.1
data/lib/settings.rb CHANGED
@@ -22,7 +22,8 @@ class Settings < ActiveRecord::Base
22
22
  end
23
23
 
24
24
  def self.[](key)
25
- if setting = find_cached(key)
25
+ setting = find_cached(key)
26
+ if setting
26
27
  setting.value
27
28
  else
28
29
  nil
@@ -30,21 +31,19 @@ class Settings < ActiveRecord::Base
30
31
  end
31
32
 
32
33
  def self.[]=(key, val)
33
- key = key.to_s
34
- setting = Settings.find_by_key(key) || Settings.new(:key => key)
35
- setting.value = val
36
- setting.save
34
+ return nil if key.blank?
35
+ setting = Settings.find_key(key.to_s)
36
+ setting.update_attribute(:value, val) if setting
37
37
  end
38
38
 
39
39
  def self.keys
40
40
  Rails.cache.fetch("settings/settings.keys") {
41
- self.find(:all, :select => 'key', :order => 'key ASC').map{|s| s.key.to_sym}
41
+ self.find(:all, :select => 'key', :order => 'key ASC').map{|setting| setting.key.to_sym}
42
42
  }
43
43
  end
44
44
 
45
45
  def self.remove(key)
46
- key = key.to_s
47
- setting = Settings.find_by_key(key)
46
+ setting = Settings.find_by_key(key.to_s)
48
47
  if setting
49
48
  setting.destroy
50
49
  else
@@ -52,9 +51,13 @@ class Settings < ActiveRecord::Base
52
51
  end
53
52
  end
54
53
  private
55
- def self.find_cached(key)
54
+ def self.find_key(key)
56
55
  key = key.to_s
57
- Rails.cache.fetch("settings/#{key}") { Settings.find_by_key(key) }
56
+ Settings.find_by_key(key) || Settings.new(:key => key)
57
+ end
58
+
59
+ def self.find_cached(key)
60
+ Rails.cache.fetch("settings/#{key}") { Settings.find_by_key(key.to_s) }
58
61
  end
59
62
 
60
63
  def clear_cache
data/settings-goo.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{settings-goo}
8
- s.version = "0.3.0"
8
+ s.version = "0.3.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Chris Kilmer"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: settings-goo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Kilmer