From 7d67620b03cb8c1c7f162fdf6f4ee431bcb94f5a Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Mon, 1 Jul 2024 17:01:29 +0200 Subject: [PATCH] ENHO: Fix diff in generated comments of class enhancements (#6962) --- .../zcl_abapgit_object_enho_class.clas.abap | 39 ++++++++++++++---- ...it_object_enho_class.clas.testclasses.abap | 41 +++++++++++++++++++ .../zcl_abapgit_object_enho_class.clas.xml | 1 + 3 files changed, 74 insertions(+), 7 deletions(-) create mode 100644 src/objects/enh/zcl_abapgit_object_enho_class.clas.testclasses.abap diff --git a/src/objects/enh/zcl_abapgit_object_enho_class.clas.abap b/src/objects/enh/zcl_abapgit_object_enho_class.clas.abap index fa2d700b7..4853f97ba 100644 --- a/src/objects/enh/zcl_abapgit_object_enho_class.clas.abap +++ b/src/objects/enh/zcl_abapgit_object_enho_class.clas.abap @@ -1,15 +1,20 @@ -CLASS zcl_abapgit_object_enho_class DEFINITION PUBLIC. +CLASS zcl_abapgit_object_enho_class DEFINITION + PUBLIC + CREATE PUBLIC. PUBLIC SECTION. - METHODS: - constructor - IMPORTING - is_item TYPE zif_abapgit_definitions=>ty_item - io_files TYPE REF TO zcl_abapgit_objects_files. - INTERFACES: zif_abapgit_object_enho. + INTERFACES zif_abapgit_object_enho. + + METHODS constructor + IMPORTING + !is_item TYPE zif_abapgit_definitions=>ty_item + !io_files TYPE REF TO zcl_abapgit_objects_files. PROTECTED SECTION. PRIVATE SECTION. + CLASS-METHODS adjust_generated_comments + CHANGING + ct_source TYPE rswsourcet. METHODS: serialize_includes IMPORTING @@ -33,6 +38,24 @@ ENDCLASS. CLASS zcl_abapgit_object_enho_class IMPLEMENTATION. + METHOD adjust_generated_comments. + + FIELD-SYMBOLS LIKE LINE OF ct_source. + + " Enhancements contain comments that end in '.' or ' .' depending on release + " This routine replaces the space-dot with just dot + LOOP AT ct_source ASSIGNING . + IF strlen( ) > 2. + = replace( + val = + regex = '^(\*".*) \.$' + with = '$1.' ). + ENDIF. + ENDLOOP. + + ENDMETHOD. + + METHOD constructor. ms_item = is_item. mo_files = io_files. @@ -231,6 +254,8 @@ CLASS zcl_abapgit_object_enho_class IMPLEMENTATION. ii_xml->add( iv_name = 'POST_METHODS' ig_data = lt_post ). + adjust_generated_comments( CHANGING ct_source = lt_source ). + mo_files->add_abap( lt_source ). zcl_abapgit_object_enho_clif=>serialize( diff --git a/src/objects/enh/zcl_abapgit_object_enho_class.clas.testclasses.abap b/src/objects/enh/zcl_abapgit_object_enho_class.clas.testclasses.abap new file mode 100644 index 000000000..7815f83f9 --- /dev/null +++ b/src/objects/enh/zcl_abapgit_object_enho_class.clas.testclasses.abap @@ -0,0 +1,41 @@ +CLASS ltcl_enho_class DEFINITION FOR TESTING + RISK LEVEL HARMLESS + DURATION SHORT FINAL. + + PRIVATE SECTION. + METHODS adjust_generated_comments FOR TESTING. + +ENDCLASS. + +CLASS zcl_abapgit_object_enho_class DEFINITION LOCAL FRIENDS ltcl_enho_class. + +CLASS ltcl_enho_class IMPLEMENTATION. + + METHOD adjust_generated_comments. + + DATA lt_source_act TYPE rswsourcet. + DATA lt_source_exp TYPE rswsourcet. + + INSERT ` METHOD run.` INTO TABLE lt_source_act. + INSERT `*"------------------------------------------------------------------------*` INTO TABLE lt_source_act. + INSERT `*"METHODS run .` INTO TABLE lt_source_act. + INSERT `*"` INTO TABLE lt_source_act. + INSERT `*"METHODS test.` INTO TABLE lt_source_act. + INSERT `*"------------------------------------------------------------------------*` INTO TABLE lt_source_act. + INSERT ` BREAK-POINT .` INTO TABLE lt_source_act. + INSERT ` ENDMETHOD.` INTO TABLE lt_source_act. + + lt_source_exp = lt_source_act. + + DELETE lt_source_exp INDEX 3. + INSERT `*"METHODS run.` INTO lt_source_exp INDEX 3. " <<< change only this + + zcl_abapgit_object_enho_class=>adjust_generated_comments( CHANGING ct_source = lt_source_act ). + + cl_abap_unit_assert=>assert_equals( + act = lt_source_act + exp = lt_source_exp ). + + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/enh/zcl_abapgit_object_enho_class.clas.xml b/src/objects/enh/zcl_abapgit_object_enho_class.clas.xml index edb87bf98..41b3e1388 100644 --- a/src/objects/enh/zcl_abapgit_object_enho_class.clas.xml +++ b/src/objects/enh/zcl_abapgit_object_enho_class.clas.xml @@ -10,6 +10,7 @@ X X X + X