Class: ICFS::Config Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/icfs/config.rb

Overview

This class is abstract.

Configuration storage interface

Direct Known Subclasses

ConfigRedis, ConfigS3

Constant Summary collapse

ValConfig =

Valid config options

{
  method: :hash,
  optional: {
    'tz' => {
      method: :string,
      valid: /[+\-](0[0-9]|1[0-2]):[0-5][0-9]/.freeze,
      whitelist: true,
    }
  }
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(defaults = {}) ⇒ Config

New instance

Parameters:

  • defaults (Hash) (defaults to: {})

    The default options



42
43
44
45
46
# File 'lib/icfs/config.rb', line 42

def initialize(defaults={})
  @data = {}
  @unam = nil
  @defaults = defaults
end

Instance Attribute Details

#dataObject

The configuration values hash



52
53
54
# File 'lib/icfs/config.rb', line 52

def data
  @data
end

#defaultsObject (readonly)

The configuration defaults



58
59
60
# File 'lib/icfs/config.rb', line 58

def defaults
  @defaults
end

Instance Method Details

#get(key) ⇒ Object

Get a value

Parameters:

  • key (String)

    The name of the config setting



66
67
68
# File 'lib/icfs/config.rb', line 66

def get(key)
  @data.key?(key) ? @data[key] : @defaults[key]
end

#load(unam) ⇒ Boolean

Load a user configuration

Parameters:

  • unam (String)

    the user name to load

Returns:

  • (Boolean)

    if any config data was found for the user

Raises:

  • (NotImplementedError)


97
# File 'lib/icfs/config.rb', line 97

def load(unam); raise NotImplementedError; end

#saveObject

Save a user configuration

Raises:

  • (NotImplementedError)


103
# File 'lib/icfs/config.rb', line 103

def save; raise NotImplementedError; end

#set(key, val) ⇒ Object

Set a value

Parameters:

  • key (String)

    The name of the config setting

  • val (Object)

    The value of the config setting



77
78
79
# File 'lib/icfs/config.rb', line 77

def set(key, val)
  @data[key] = val
end