module Mongoid::AppSettings::ClassMethods

Public Instance Methods

all() click to toggle source
# 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
defaults() click to toggle source
# 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) click to toggle source

Unsets a set value, resetting it to its default

# File lib/mongoid-app_settings.rb, line 58
def delete(setting)
  @record.unset(setting)
end
reload() click to toggle source

Force a reload from the database

# File lib/mongoid-app_settings.rb, line 52
def reload
  @record = nil
  self
end
setting(name, options = {}) click to toggle source

Defines a setting. Options can include:

  • default – Specify a default value

Example usage:

class MySettings
  include Mongoid::AppSettings
  setting :organization_name, :default => "demo"
end
# 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