def register(feature, &block)
      if feature.is_a?(String)
        return register(Feature.new(feature, &block))
      end

      if @features.key?(feature.name)
        raise(ArgumentError, "Feature #{feature.name} is already registered.")
      end

      @features[feature.name] = feature
    end
def register(feature, &block)
      if feature.is_a?(String)
        return register(Feature.new(feature, &block))
      end

      if @features.key?(feature.name)
        raise(ArgumentError, "Feature #{feature.name} is already registered.")
      end

      @features[feature.name] = feature
    end
@api private
 Register a feature that can be enabled for accounts of
 entries. If the first parameter is a string, a block can be
 passed to provide the enable method. If only a string is passed,
 enabling the feature is no-op.

 @overload register(feature)
   @param feature [Feature]

 @overload register(feature)
   @param feature [String]
   @yieldparam config [Configuration] Use the block as enable
     method.

 @overload register(feature)
   @param feature [String]