mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
add global class zcl_abapgit_url
This commit is contained in:
parent
4c2d9ad45f
commit
dcaeb74280
91
src/zcl_abapgit_url.clas.abap
Normal file
91
src/zcl_abapgit_url.clas.abap
Normal file
|
@ -0,0 +1,91 @@
|
|||
CLASS zcl_abapgit_url DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-METHODS:
|
||||
host
|
||||
IMPORTING
|
||||
!iv_repo TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_host) TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_exception,
|
||||
|
||||
name
|
||||
IMPORTING
|
||||
!iv_repo TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_name) TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_exception,
|
||||
|
||||
path_name
|
||||
IMPORTING
|
||||
!iv_repo TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_path_name) TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
|
||||
PRIVATE SECTION.
|
||||
CLASS-METHODS:
|
||||
regex
|
||||
IMPORTING
|
||||
!iv_repo TYPE string
|
||||
EXPORTING
|
||||
!ev_host TYPE string
|
||||
!ev_path TYPE string
|
||||
!ev_name TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_url IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD host.
|
||||
|
||||
regex( EXPORTING iv_repo = iv_repo
|
||||
IMPORTING ev_host = rv_host ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD name.
|
||||
|
||||
regex( EXPORTING iv_repo = iv_repo
|
||||
IMPORTING ev_name = rv_name ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD path_name.
|
||||
|
||||
|
||||
DATA: lv_host TYPE string ##NEEDED.
|
||||
|
||||
FIND REGEX '(.*://[^/]*)(.*)' IN iv_repo
|
||||
SUBMATCHES lv_host rv_path_name.
|
||||
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD regex.
|
||||
|
||||
|
||||
FIND REGEX '(.*://[^/]*)(.*/)([^\.]*)[\.git]?' IN iv_repo
|
||||
SUBMATCHES ev_host ev_path ev_name.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'Malformed URL' ).
|
||||
ENDIF.
|
||||
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
44
src/zcl_abapgit_url.clas.xml
Normal file
44
src/zcl_abapgit_url.clas.xml
Normal file
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_URL</CLSNAME>
|
||||
<VERSION>1</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<CLSFINAL>X</CLSFINAL>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
<DESCRIPTIONS>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_ABAPGIT_URL</CLSNAME>
|
||||
<CMPNAME>HOST</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>HOST</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_ABAPGIT_URL</CLSNAME>
|
||||
<CMPNAME>NAME</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>NAME</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_ABAPGIT_URL</CLSNAME>
|
||||
<CMPNAME>PATH_NAME</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>PATH_NAME</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_ABAPGIT_URL</CLSNAME>
|
||||
<CMPNAME>REGEX</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>REGEX</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
</DESCRIPTIONS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
Loading…
Reference in New Issue
Block a user