module CMDx::CoreExt::ModuleExtensions

def __cmdx_attr_setting(method, **options)

def __cmdx_attr_setting(method, **options)
  define_singleton_method(method) do
    @cmd_facets ||= {}
    return @cmd_facets[method] if @cmd_facets.key?(method)
    value = superclass.__cmdx_try(method)
    return @cmd_facets[method] = value.dup unless value.nil?
    default = options[:default]
    value   = default.__cmdx_call
    @cmd_facets[method] = default.is_a?(Proc) ? value : value.dup
  end
end