class Michael::Services::Configuration

Attributes

config[R]

Public Class Methods

new(config) click to toggle source
# File lib/michael/services/configuration.rb, line 10
def initialize(config)
  raise Error, 'configuration is not initialized' if config.nil?

  @config = config
end

Public Instance Methods

append(*values, to: nil) click to toggle source
# File lib/michael/services/configuration.rb, line 20
def append(*values, to: nil)
  interact(:append, *values, to: to)
end
fetch(*keys, default: nil) click to toggle source
# File lib/michael/services/configuration.rb, line 24
def fetch(*keys, default: nil)
  interact(:fetch, *keys, default: default)
end
remove(*values, from: nil) click to toggle source
# File lib/michael/services/configuration.rb, line 28
def remove(*values, from: nil)
  interact(:remove, *values, from: from)
end
set(*keys, value: nil) click to toggle source
# File lib/michael/services/configuration.rb, line 16
def set(*keys, value: nil)
  interact(:set, *keys, value: value)
end

Private Instance Methods

interact(symbol, *args) click to toggle source
# File lib/michael/services/configuration.rb, line 34
def interact(symbol, *args)
  config.read if config.exist?
  resp = config.public_send(symbol, *args)
  config.write(force: true)
  resp
end