Module: Settis::Container

Defined in:
lib/settis/container.rb

Instance Method Summary collapse

Instance Method Details

#redisObject



20
21
22
# File 'lib/settis/container.rb', line 20

def redis
  @redis ||= Redis::Namespace.new(root, :redis => Settis.redis)
end

#root(value) ⇒ Object #rootObject

Overloads:

  • #root(value) ⇒ Object

    Sets the root namespace prefix to be added before all Redis key names.

  • #rootObject

    Gets the root namespace prefix to be added before all Redis key names.



29
30
31
32
33
34
35
# File 'lib/settis/container.rb', line 29

def root(value = nil)
  if value.nil?
    @root ||= 'settings' 
  else
    @root = value
  end
end

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

Defines a new setting.

Options Hash (options):

  • :default (Object)

    The default value of the setting. Not supported for lists, sets, and hashes.

Raises:

  • (ArgumentError)


43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/settis/container.rb', line 43

def setting(name, type, options = {})
  @settings ||= {}

  name = name.to_s

  raise ArgumentError, "The setting '#{name}' already exists." if @settings.key?(name)

  klass = case type
          when :string  then Settings::Scalar
          when :integer then Settings::Integer
          when :boolean then Settings::Boolean
          else
            raise ArgumentError, "Unknown type '#{type}'."
          end

  @settings[name] = klass.new(name, self, options)
end