lib/ruby-conf.rb in ruby-conf-2.5.3 vs lib/ruby-conf.rb in ruby-conf-2.6.0
- old
+ new
@@ -5,10 +5,14 @@
require 'find'
require 'digest/md5'
module RubyConf
+ def self.puts(logger = $stdout, *obj) logger.puts(*obj) if logger.respond_to?(:puts) end
+ def self.err(*objs) self.puts($stderr, *objs) end
+ def self.out(*objs) self.puts($stdout, *objs) end
+
class Loader < BasicObject
EXTENTIONS = %w{rbc rbcnf rbconf rbconfig rubyconf rubyconfig ruby-conf ruby-config}
@@conf = @@path = @@mtime = @@md5 = nil
@@ -19,16 +23,16 @@
def __rc_set_conf(conf = nil) @@conf, @@path, @@mtime, @@md5 = conf, nil, nil, nil end
def __rc_load(path)
__rc_set_conf
if load(path) && @@conf
@@path, @@mtime, @@md5 = path, File.mtime(path).to_i, Digest::MD5.hexdigest(File.read(path))
- puts "[ruby-conf] Auto-Loaded config at path: #{path}"
+ RubyConf.out "[ruby-conf] Auto-Loaded config at path: #{path}"
end
end
def method_missing(name, *args, &block)
if @@mtime && @@mtime != File.mtime(@@path).to_i && @@md5 != Digest::MD5.hexdigest(File.read(@@path))
- puts "[ruby-conf] Detected change in config file, reloading..."
+ RubyConf.err "[ruby-conf] Detected change in config file, reloading..."
__rc_load(@@path)
end
if @@conf.nil?
Find.find('.') do |path|
@@ -39,10 +43,11 @@
end
end
@@conf.__send__(name, *args, &block)
end
def to_s() @@conf.to_s end
+ def to_str() @@conf.to_str end
def inspect() @@conf.inspect end
end
end
module Magic
@@ -173,30 +178,54 @@
def __rc_build_string(depth = 0)
str = ""
str += "[#{@__rc_name || "CONFIG"}]\n" unless @__rc_parent
str += "\n"
@__rc_attributes.keys.map{|k| k.to_s }.sort.each do |key|
- value = self[key]
+ value = begin
+ self[key]
+ rescue => e
+ "[UNRESOLVED]"
+ end
+
str += " " * depth
str += "#{key}:"
str += value.is_a?(Config) ? value.__rc_build_string(depth+1) : " #{value}\n"
- str += "\n" unless depth > 0
+# str += "\n" unless depth > 0
end
str
end
+ def __rc_build_inspect()
+ istr = ""
+ istr += "[#{@__rc_name || "CONFIG"}] " unless @__rc_parent
+ istr += @__rc_attributes.keys.map{|k| k.to_s }.sort.map{ |key|
+ str = ""
+ value = begin
+ self[key]
+ rescue => e
+ "[UNRESOLVED:#{e}]"
+ end
+ str += "#{key}: "
+ str += value.is_a?(Config) ? "{ #{value.__rc_build_inspect} }" : value.inspect
+ str
+ }.join(", ")
+ istr
+ end
+
def to_s() __rc_build_string end
def to_str() to_s end
-
- def __rc_build_inspect() "#{"[#{@__rc_name || "CONFIG"}] " unless @__rc_parent}#{@__rc_attributes.keys.map {|k| k.to_s }.sort.map { |key| "#{key}: #{self[key].is_a?(Config) ? "{ #{self[key].__rc_build_inspect} }" : self[key].inspect}" }.join(", ")}" end
def inspect() __rc_build_inspect end
end
@@__rc_configs = {}
class << self
def clear()
Loader::__rc_set_conf
@@__rc_configs.clear
end
+
+ def to_s() @@__rc_configs.to_s end
+ def to_str() @@__rc_configs.to_str end
+ def inspect() @@__rc_configs.inspect end
def [](name) @@__rc_configs[name.to_sym] end
def method_missing(name, *args) @@__rc_configs[name.to_sym] end
def respond_to?(name) @@__rc_configs.key?(name.to_sym) end