class DnsOne::Util
Constants
- DOM_REGEX
Public Class Methods
const_underscore(name)
click to toggle source
# File lib/dns_one/util.rb, line 36 def const_underscore name name = name.to_s.dup name.gsub!('::', '/') name.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2') name.gsub!(/([a-z\d])([A-Z])/,'\1_\2') name.tr!("-", "_") name.downcase! name end
die(msg)
click to toggle source
# File lib/dns_one/util.rb, line 6 def die msg Global.logger.fatal msg exit 1 end
ensure_sytemd()
click to toggle source
# File lib/dns_one/util.rb, line 21 def ensure_sytemd unless has_systemd? STDERR.puts "Systemd not available. Aborting." exit 1 end end
has_systemd?()
click to toggle source
# File lib/dns_one/util.rb, line 16 def has_systemd? File.exist?(`which systemctl`.strip) && File.writable?('/lib/systemd/system') end
hash_to_ostruct_deep(hash)
click to toggle source
# File lib/dns_one/util.rb, line 46 def hash_to_ostruct_deep hash os = OpenStruct.new hash.each_pair{ |k, v| if v.is_a? Hash os[k] = hash_to_ostruct_deep v else os[k] = v end } os end
init_logger(logdev, level = Logger::WARN, shift_age = 10, shift_size = 2**20)
click to toggle source
# File lib/dns_one/util.rb, line 58 def init_logger logdev, level = Logger::WARN, shift_age = 10, shift_size = 2**20 if logdev.is_a? String begin if File.exists? logdev File.writable? logdev else FileUtils.mkdir_p File.dirname(logdev) end rescue => e $stderr.puts "#{e.desc}\nCannot open log file #{logdev}. Will use STDOUT." logdev = $stdout end end l = Logger.new logdev, shift_age, shift_size l.level = level l end
last_mod(constant)
click to toggle source
# File lib/dns_one/util.rb, line 32 def last_mod constant constant.to_s.split('::').last end
match_root(stat)
click to toggle source
# File lib/dns_one/util.rb, line 28 def match_root stat stat.uid == 0 && stat.gid == 0 end
run(cmd)
click to toggle source
# File lib/dns_one/util.rb, line 11 def run cmd puts "Running #{cmd}..." system cmd end