Exception: Lutaml::ModelTransformations::Parsers::ParseError

Inherits:
Error
  • Object
show all
Defined in:
lib/lutaml/model_transformations/parsers/base_parser.rb

Overview

Custom error class for parsing failures

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, original_error: nil, parser: nil, file_path: nil) ⇒ ParseError

Initialize parsing error

Parameters:

  • message (String)

    Error message

  • original_error (StandardError) (defaults to: nil)

    Original error

  • parser (BaseParser) (defaults to: nil)

    Parser that failed

  • file_path (String) (defaults to: nil)

    File that failed to parse



438
439
440
441
442
443
444
445
446
# File 'lib/lutaml/model_transformations/parsers/base_parser.rb', line 438

def initialize(
  message, original_error: nil, parser: nil,
  file_path: nil
)
  super(message)
  @original_error = original_error
  @parser = parser
  @file_path = file_path
end

Instance Attribute Details

#file_pathString (readonly)

Returns Path to file that failed to parse.

Returns:

  • (String)

    Path to file that failed to parse



430
431
432
# File 'lib/lutaml/model_transformations/parsers/base_parser.rb', line 430

def file_path
  @file_path
end

#original_errorStandardError (readonly)

Returns Original error that caused parsing failure.

Returns:

  • (StandardError)

    Original error that caused parsing failure



424
425
426
# File 'lib/lutaml/model_transformations/parsers/base_parser.rb', line 424

def original_error
  @original_error
end

#parserBaseParser (readonly)

Returns Parser instance that failed.

Returns:



427
428
429
# File 'lib/lutaml/model_transformations/parsers/base_parser.rb', line 427

def parser
  @parser
end

Instance Method Details

#detailsHash

Get detailed error information

Returns:

  • (Hash)

    Error details



451
452
453
454
455
456
457
458
459
460
# File 'lib/lutaml/model_transformations/parsers/base_parser.rb', line 451

def details # rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
  {
    message: message,
    file_path: @file_path,
    parser: @parser&.class&.name,
    original_error: @original_error&.class&.name,
    original_message: @original_error&.message,
    backtrace: @original_error&.backtrace&.first(5),
  }
end