def register(name, klass)
      if valid_strategy? klass
        available_strategies[name.to_sym] = klass
      else
        fail exception_to_raise_for_invalid_strategy, "Registering #{klass} failed. It does not support \"#{class_must_have_methods.join('-, ')}\"-method"
      end
    end
def register(name, klass)
      if valid_strategy? klass
        available_strategies[name.to_sym] = klass
      else
        fail exception_to_raise_for_invalid_strategy, "Registering #{klass} failed. It does not support \"#{class_must_have_methods.join('-, ')}\"-method"
      end
    end
Register a new comparator strategy

 @param [String,Symbol] name
   The name which can be used to refer to the registered strategy

 @param [Comparator] klass
   The strategy class which should be registered

 @raise user defined exception
   Raise exception if an incompatible strategy class is given. Please
   see #exception_to_raise_for_invalid_strategy for more information