module Mongoid::Settings::ClassMethods

Public Instance Methods

[](name) click to toggle source
# File lib/mongoid-settings.rb, line 14
def [](name)
  storage[name].presence || defaults[name]
end
[]=(name, value) click to toggle source
# File lib/mongoid-settings.rb, line 18
def []= (name, value)
  storage.update_attribute(name, value) if defaults.include?(name)
end
reload!() click to toggle source
# File lib/mongoid-settings.rb, line 22
def reload!
  @storage = load_storage
end

Private Instance Methods

defaults() click to toggle source
# File lib/mongoid-settings.rb, line 37
def defaults
  @defaults ||= {}
end
load_storage() click to toggle source
# File lib/mongoid-settings.rb, line 45
def load_storage
  Storage.first_or_create
end
setting(name, options = {}) click to toggle source
# File lib/mongoid-settings.rb, line 28
def setting(name, options = {})
  Storage.class_eval do
    field(name, options)
  end
  defaults[name] = options[:default]
  define_singleton_method(name) { self[name] }
  define_singleton_method("#{name}=") { |value| self[name] = value }
end
storage() click to toggle source
# File lib/mongoid-settings.rb, line 41
def storage
  @storage ||= load_storage
end