class EasySettings::CertificateManagerSource

Public Class Methods

new(base_path, settings_root: ["certificates"], separator: "__", converter: :downcase) click to toggle source
Calls superclass method EasySettings::PathSource::new
# File lib/easy-settings/certificate_manager_source.rb, line 4
def initialize(base_path, settings_root: ["certificates"], separator: "__", converter: :downcase)
  super(base_path, settings_root: settings_root, separator: separator, converter: converter, parse_values: false)
end

Public Instance Methods

filenames() click to toggle source
# File lib/easy-settings/certificate_manager_source.rb, line 30
def filenames
  {"ca.crt" => "ca", "tls.crt" => "crt", "tls.key" => "key"}
end
load() click to toggle source
# File lib/easy-settings/certificate_manager_source.rb, line 8
def load
  {}.tap do |data|
    Dir["#{base_path}/*"].each do |path|
      next unless File.directory?(path)
      next unless valid_folder?(path)

      variable = path.gsub("#{base_path}/", "")
      keys = settings_root + variable.to_s.split(separator)

      filenames.each do |filename, key|
        value = File.binread("#{path}/#{filename}").strip
        assign_value(data, keys + [key], value)
      end
    end
  end
end
valid_folder?(path) click to toggle source
# File lib/easy-settings/certificate_manager_source.rb, line 25
def valid_folder?(path)
  # ensure the folder contains all the files we expect
  (filenames.keys - Dir["#{path}/*"].map{ |path| File.basename(path) }).none?
end