class Lutaml::ModelTransformations::FormatRegistry
def validate_parser_class!(parser_class) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/MethodLength
-
(ArgumentError)- if parser class is invalid
Parameters:
-
parser_class(Class) -- Parser class to validate
def validate_parser_class!(parser_class) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/MethodLength # Check if nil if parser_class.nil? raise ArgumentError, "Parser class cannot be nil" end # Check if it's a class unless parser_class.is_a?(Class) raise ArgumentError, "Parser must be a class" end # Check if class is a subclass of BaseParser unless parser_class < Parsers::BaseParser raise ArgumentError, "Parser class must inherit from BaseParser" end # Check if class responds to required methods required_methods = [:parse] missing_methods = required_methods.reject do |method| parser_class.method_defined?(method) || parser_class.private_method_defined?(method) end # Check if any methods are missing unless missing_methods.empty? raise ArgumentError, "Parser class must implement methods: " \ "#{missing_methods.join(', ')}" end end