Class: RosettAi::Retrofit::BaseParser Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/rosett_ai/retrofit/base_parser.rb

Overview

This class is abstract.

Subclasses must implement #discover, #parse, and #engine_name.

Abstract base class for engine-specific retrofit parsers.

Each engine provides a parser that knows how to discover and read native config files, convert them to Rosett-AI YAML structure, and identify unknown keys.

Author:

  • hugo

  • claude

Instance Method Summary collapse

Instance Method Details

#available?Boolean

Returns true if this engine's native config is present.

Returns:

  • (Boolean)

    true if this engine's native config is present



39
40
41
# File 'lib/rosett_ai/retrofit/base_parser.rb', line 39

def available?
  discover.any?
end

#discoverArray<Pathname>

Discovers native config files for this engine.

Returns:

  • (Array<Pathname>)

    list of discovered config file paths

Raises:

  • (NotImplementedError)


26
27
28
# File 'lib/rosett_ai/retrofit/base_parser.rb', line 26

def discover
  raise NotImplementedError, "#{self.class}#discover must be implemented"
end

#engine_nameString

Returns engine identifier.

Returns:

  • (String)

    engine identifier

Raises:

  • (NotImplementedError)


19
20
21
# File 'lib/rosett_ai/retrofit/base_parser.rb', line 19

def engine_name
  raise NotImplementedError, "#{self.class}#engine_name must be implemented"
end

#parse(path) ⇒ Hash

Parses a native config file into Rosett-AI YAML structure.

Parameters:

  • path (Pathname)

    path to the native config file

Returns:

  • (Hash)

    parsed configuration data with :data, :unknown_keys, :source_file keys

Raises:

  • (NotImplementedError)


34
35
36
# File 'lib/rosett_ai/retrofit/base_parser.rb', line 34

def parse(path)
  raise NotImplementedError, "#{self.class}#parse must be implemented"
end