class SecureConf::Config

Attributes

auto_commit[RW]
encripter[R]
path[R]
serializer[R]
storage[R]

Public Class Methods

new(path, encripter: nil, serializer: nil, storage: nil, auto_commit: false) click to toggle source
Calls superclass method
# File lib/secure_conf/config.rb, line 11
def initialize(path, encripter: nil, serializer: nil, storage: nil, auto_commit: false)
  @path = path
  @encripter = encripter || SecureConf.default
  @serializer = serializer || Serializer::Marshal
  @storage = storage || Storage.fetch(path)
  @auto_commit = auto_commit
  super(@storage.load(path))
end

Public Instance Methods

[](key) click to toggle source
# File lib/secure_conf/config.rb, line 47
def [](key)
  value = plain_get(key)
  if value && key.to_s.start_with?("enc:")
    value = @encripter.decrypt(value)
    value = @serializer.load(value)
  end
  value
end
[]=(key, value)
Alias for: store
delete(key) click to toggle source

delete

# File lib/secure_conf/config.rb, line 58
def delete(key)
  __getobj__.delete(key)
  save if @auto_commit
end
plain_get(key) click to toggle source

get

# File lib/secure_conf/config.rb, line 43
def plain_get(key)
  __getobj__[key]
end
plain_store(key, value) click to toggle source

store

# File lib/secure_conf/config.rb, line 22
def plain_store(key, value)
  __getobj__.store(key, value)
  save if @auto_commit
end
save() click to toggle source

save

# File lib/secure_conf/config.rb, line 65
def save
  @storage.save(path, __getobj__)
end
secure_store(key, value) click to toggle source
# File lib/secure_conf/config.rb, line 27
def secure_store(key, value)
  value = @serializer.dump(value)
  plain_store(key, @encripter.encrypt(value))
end
store(key, value) click to toggle source
# File lib/secure_conf/config.rb, line 32
def store(key, value)
  if key.to_s.start_with?("enc:")
    secure_store(key, value)
  else
    plain_store(key, value)
  end
end
Also aliased as: []=