Class: Setting

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/setting.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.global(key, opts = {}) ⇒ Object

eg. Setting.global(“site-name”)



47
48
49
50
51
52
53
54
55
56
57
# File 'app/models/setting.rb', line 47

def self.global(key, opts = {})
  autocreate = opts.delete(:autocreate)
  kind = opts.delete(:kind) || :string
  default = opts.delete(:default)
  group = opts.delete(:group) || "global"
  
  s = autocreate ? self.find_or_create_by_key_and_settable_id(key.to_s, nil, :kind => kind, :"#{kind}_value" => default, :group => group) : self.find_by_key_and_settable_id(key.to_s, nil)
  if s
    s.value || default
  end
end

.kindsObject



22
23
24
25
26
27
28
29
30
31
32
# File 'app/models/setting.rb', line 22

def self.kinds
        [ :string,
          :integer,
          :float,
          :boolean,
          :text,
          :datetime,
          :date,
          :file
         ]
end

.update_global(key, value) ⇒ Object



59
60
61
62
63
64
65
# File 'app/models/setting.rb', line 59

def self.update_global(key, value)
  s = self.find_by_key_and_settable_id(key.to_s, nil)

  if s
    s.update_attributes(:value => value)
  end
end

Instance Method Details

#valueObject



34
35
36
37
38
39
40
41
42
43
# File 'app/models/setting.rb', line 34

def value
  setting_kind = self.kind

  # this will break paperclip 'missing.png' feature, but at least
  # provides a way to check if an attachment is missing
  if setting_kind == "file"
    return nil if !file_value?
  end
  self.send("#{setting_kind}_value")
end