Module: Mongoid::AppSettings::ClassMethods

Defined in:
lib/mongoid-app_settings.rb

Instance Method Summary collapse

Instance Method Details

#allObject



62
63
64
65
66
67
68
# File 'lib/mongoid-app_settings.rb', line 62

def all
  {}.tap do |result|
    settings.each do |setting, options|
      result[setting.to_sym] = self.send(setting)
    end
  end
end

#defaultsObject



70
71
72
73
74
75
76
# File 'lib/mongoid-app_settings.rb', line 70

def defaults
  {}.tap do |result|
    settings.each do |setting, options|
      result[setting.to_sym] = options[:default]
    end
  end
end

#delete(setting) ⇒ Object

Unsets a set value, resetting it to its default



58
59
60
# File 'lib/mongoid-app_settings.rb', line 58

def delete(setting)
  @record.unset(setting)
end

#reloadObject

Force a reload from the database



52
53
54
55
# File 'lib/mongoid-app_settings.rb', line 52

def reload
  @record = nil
  self
end

#setting(name, options = {}) ⇒ Object

Defines a setting. Options can include:

  • default -- Specify a default value

Example usage:

class MySettings
include Mongoid::AppSettings
setting :organization_name, :default => "demo"
end


33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/mongoid-app_settings.rb', line 33

def setting(name, options = {})
  settings[name.to_s] = options

  Record.instance_eval do
    field name, options.slice(:type)
  end

  @base.class.class_eval do
    define_method(name.to_s) do
      @base[name.to_s]
    end

    define_method(name.to_s + "=") do |value|
      @base[name.to_s] = value
    end
  end
end