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
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: []=