def add_output(name, output_type, **config)
      output_classes = validate_output_type(output_type)
      raise ArgumentError, "Output '#{name}' already exists! Call remove_output('#{name}') first." if @outputs[name]

      #categories  = validate_categories(config[:categories] || Constants::Defaults::CATEGORY_NAMES_MINUS_INTERNAL)
      categories = validate_categories(config[:categories] || Constants::Defaults::CATEGORIES.keys)

      @outputs[name] = {
          #config
          config:     config,
          categories: categories,

          #objects
          outs: output_classes.map {|x| x.new(config)},
      }

    end
def add_output(name, output_type, **config)
      output_classes = validate_output_type(output_type)
      raise ArgumentError, "Output '#{name}' already exists! Call remove_output('#{name}') first." if @outputs[name]

      #categories  = validate_categories(config[:categories] || Constants::Defaults::CATEGORY_NAMES_MINUS_INTERNAL)
      categories = validate_categories(config[:categories] || Constants::Defaults::CATEGORIES.keys)

      @outputs[name] = {
          #config
          config:     config,
          categories: categories,

          #objects
          outs: output_classes.map {|x| x.new(config)},
      }

    end
Output manipulation