class RsyncConfig::Config
Public Class Methods
load_file(config_file)
click to toggle source
# File lib/rsync_config/config.rb, line 20 def self.load_file(config_file) raise 'File does not exist' unless File.exists? config_file raise 'File is not readable' unless File.readable? config_file content = nil File.open(config_file, 'r') do |file| content = file.read end Config.parse content end
parse(content)
click to toggle source
# File lib/rsync_config/config.rb, line 33 def self.parse(content) raise 'Cannot process nil' if content.nil? Treetop.load File.join(__dir__, 'parser/config_file') parser = RsyncConfigFileParser.new p = parser.parse content unless p.nil? return p.to_config.after_parse else raise RuntimeError, parser.failure_reason end end
Public Instance Methods
after_parse()
click to toggle source
# File lib/rsync_config/config.rb, line 86 def after_parse batch_process_secrets_files :load_secrets_file end
module(key)
click to toggle source
# File lib/rsync_config/config.rb, line 47 def module(key) raise ArgumentError if key.nil? key = key.to_s if key.is_a? Symbol key = key.strip raise ArgumentError if key.length == 0 modules[key] ||= Module.new(self, key) modules[key] end
module_names()
click to toggle source
# File lib/rsync_config/config.rb, line 82 def module_names modules.keys end
to_config_file()
click to toggle source
# File lib/rsync_config/config.rb, line 62 def to_config_file out = [] properties_to_s = properties_to_a.join("\n") out << properties_to_s if properties_to_s.length > 0 modules.each do |key, mod| out << mod.to_config_file end out.join "\n" end
to_s()
click to toggle source
# File lib/rsync_config/config.rb, line 58 def to_s to_config_file end
write_to(file_path)
click to toggle source
# File lib/rsync_config/config.rb, line 74 def write_to(file_path) File.open(file_path, 'w') do |file| file.write to_config_file end write_secrets_files end
Private Instance Methods
batch_process_secrets_files(method_name)
click to toggle source
# File lib/rsync_config/config.rb, line 100 def batch_process_secrets_files(method_name) send method_name, self.[]('secrets file', true) modules.each_value do |rmodule| rmodule.send method_name, rmodule.[]('secrets file', true) end self end
modules()
click to toggle source
# File lib/rsync_config/config.rb, line 92 def modules @modules ||= {} end
write_secrets_files()
click to toggle source
# File lib/rsync_config/config.rb, line 96 def write_secrets_files batch_process_secrets_files :write_secrets_file end