{"record":{"id":"ce3c57636918441c","repo":"puppetlabs/puppet","slug":"mergestrategies-add-strategy-strategy-class-must","errorCode":null,"errorMessage":"MergeStrategies.add_strategy 'strategy_class' must be a 'MergeStrategy' class. Got %{strategy_class}","messagePattern":"MergeStrategies\\.add_strategy 'strategy_class' must be a 'MergeStrategy' class\\. Got %(.+?)","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/puppet/pops/merge_strategy.rb","lineNumber":60,"sourceCode":"      merge_options == EMPTY_HASH ? strategy_class::INSTANCE : strategy_class.new(merge_options)\n    end\n\n    # Returns the list of merge strategy keys known to this class\n    #\n    # @return [Array<Symbol>] List of strategy keys\n    #\n    def self.strategy_keys\n      strategies.keys - [:default, :unconstrained_deep, :reverse_deep]\n    end\n\n    # Adds a new merge strategy to the map of strategies known to this class\n    #\n    # @param strategy_class [Class<MergeStrategy>] The class of the added strategy\n    #\n    def self.add_strategy(strategy_class)\n      unless MergeStrategy > strategy_class\n        # TRANSLATORS 'MergeStrategies.add_strategy' is a method, 'stratgey_class' is a variable and 'MergeStrategy' is a class name and should not be translated\n        raise ArgumentError, _(\"MergeStrategies.add_strategy 'strategy_class' must be a 'MergeStrategy' class. Got %{strategy_class}\") %\n                             { strategy_class: strategy_class }\n      end\n      strategies[strategy_class.key] = strategy_class\n      nil\n    end\n\n    # Finds a merge strategy that corresponds to the given _merge_ argument and delegates the task of merging the elements of _e1_ and _e2_ to it.\n    #\n    # @param e1 [Object] The first element\n    # @param e2 [Object] The second element\n    # @return [Object] The result of the merge\n    #\n    def self.merge(e1, e2, merge)\n      strategy(merge).merge(e1, e2)\n    end\n\n    def self.key\n      raise NotImplementedError, \"Subclass must implement 'key'\"","sourceCodeStart":42,"sourceCodeEnd":78,"githubUrl":"https://github.com/puppetlabs/puppet/blob/e227c27540975c25aa22d533a52424a9d2fc886a/lib/puppet/pops/merge_strategy.rb#L42-L78","documentation":"Error \"MergeStrategies.add_strategy 'strategy_class' must be a 'MergeStrategy' class. Got %{strategy_class}\" thrown in puppetlabs/puppet.","triggerScenarios":"Thrown at lib/puppet/pops/merge_strategy.rb:60 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e227c27540975c25aa22d533a52424a9d2fc886a","analyzedAt":"2026-08-21T20:49:46.650Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}