lib/ruby-conf.rb in ruby-conf-2.3.0 vs lib/ruby-conf.rb in ruby-conf-2.4.0
- old
+ new
@@ -1,8 +1,11 @@
#
#
# @author Hollin Wilkins & Curtis Schofield & Mason Bo-bay-son
+
+$RUBY_CONF = nil
+
module Magic
attr_accessor :__rc_chain
def __rc_gather() "#{to_s}#{__rc_chain.nil? ? "" : " #{__rc_chain.__rc_gather}"}" end
end
@@ -129,11 +132,11 @@
super || @__rc_attributes.key?(name) || @__rc_parent.respond_to?(name)
end
def __rc_build_string(depth = 0)
str = ""
- str += "[#@__rc_name]\n" unless @__rc_parent
+ 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]
str += " " * depth
str += "#{key}:"
@@ -143,11 +146,11 @@
str
end
def to_s() __rc_build_string end
def to_str() to_s end
- def __rc_build_inspect() "#{"[#@__rc_name] " 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 __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
def self.define(name = nil, options = {}, &block)
config = Config.new(name, &block)
@@ -156,14 +159,32 @@
const = options.fetch(:as, name)
if const && const.to_s[/^[A-Z]/]
const = const.to_sym
::Object.const_set(const, config) if !::Object.const_defined?(const) || ::Object.const_get(const).is_a?(Config)
end
+
+ if $RUBY_CONF.nil? && (name.nil? || name.to_s =~ /^(?:Rails)?Conf/)
+ $RUBY_CONF = if ::Object.const_defined?(:Rails)
+ cfg = config[:"#{::Rails.env}"] || config[:"#{::Rails.env}_conf"] || config[:"#{::Rails.env}_config"]
+ cfg && cfg.detach || config
+ else
+ config
+ end
+ end
+
config
end
def self.[](name) @@__rc_configs[name.to_sym] end
def self.method_missing(name, *args) @@__rc_configs[name.to_sym] end
def self.respond_to?(name) @@__rc_configs.key?(name.to_sym) end
+
+ def self.clear()
+ $RUBY_CONF = nil
+ @@__rc_configs.keys.each do |config|
+ remove_const(config.to_sym) if config.to_s[/^[A-Z]/] && const_defined?(config.to_sym)
+ end
+ @@__rc_configs.clear
+ end
end