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,
    }.freeze,
    'rel_time' => Validate::IsBoolean,      
  }.freeze
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(defaults = {}) ⇒ Config

New instance

Parameters:

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

    The default options



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

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

Instance Attribute Details

#dataObject

The configuration values hash



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

def data
  @data
end

#defaultsObject (readonly)

The configuration defaults



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

def defaults
  @defaults
end

Instance Method Details

#get(key) ⇒ Object

Get a value

Parameters:

  • key (String)

    The name of the config setting



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

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)


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

def load(unam); raise NotImplementedError; end

#saveObject

Save a user configuration

Raises:

  • (NotImplementedError)


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

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



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

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