module Confo::SubconfigsManager::ClassMethods
Public Instance Methods
define_subconfig_reader(subconfig_name, subconfig_options)
click to toggle source
# File lib/confo/concerns/subconfigs_manager.rb, line 37 def define_subconfig_reader(subconfig_name, subconfig_options) define_method(subconfig_name) do |options = nil, overrides = nil, &block| subconfig_internal(subconfig_name, options, overrides, &block) end end
includes_config(arg, options = {})
click to toggle source
# File lib/confo/concerns/subconfigs_manager.rb, line 6 def includes_config(arg, options = {}) @subconfigs_options ||= {} # Support different syntaxes: # includes_config :actions # includes_config of: :actions # includes_config for: :actions name = (arg.kind_of?(Hash) ? arg[:of] || arg[:for] : arg).to_sym new_options = @subconfigs_options[name] new_options ||= { name: name, fallback_class_name: 'Confo::Config' } new_options.merge!(options) @subconfigs_options[name] = new_options define_subconfig_reader(name, new_options) self end
subconfigs_options()
click to toggle source
# File lib/confo/concerns/subconfigs_manager.rb, line 24 def subconfigs_options all_options = @subconfigs_options ? @subconfigs_options.dup : {} if superclass.respond_to?(:subconfigs_options) superclass.subconfigs_options.each do |name, options| new_options = {} new_options.merge!(options[name]) if options[name] new_options.merge!(options) options[name] = new_options end end all_options end