string replace pattern형과 string index 추가
This commit is contained in:
parent
94efbd63dd
commit
2f45d8ea8f
4 changed files with 135 additions and 0 deletions
|
|
@ -76,6 +76,8 @@ enum CommandType {
|
|||
SlackBuild,
|
||||
StringSub,
|
||||
StringReplace,
|
||||
StringReplacePattern,
|
||||
StringIndex,
|
||||
Jira,
|
||||
Zip,
|
||||
Shell,
|
||||
|
|
@ -142,6 +144,8 @@ abstract class Command {
|
|||
CommandType.SlackBuild: () => SlackBuild(),
|
||||
CommandType.StringSub: () => StringSub(),
|
||||
CommandType.StringReplace: () => StringReplace(),
|
||||
CommandType.StringReplacePattern: () => StringReplacePattern(),
|
||||
CommandType.StringIndex: () => StringIndex(),
|
||||
CommandType.Jira: () => Jira(),
|
||||
CommandType.Zip: () => Zip(),
|
||||
CommandType.Shell: () => Shell(),
|
||||
|
|
|
|||
|
|
@ -47,3 +47,37 @@ class StringReplace extends Command {
|
|||
return await complete(exitCode, command);
|
||||
}
|
||||
}
|
||||
|
||||
class StringReplacePattern extends Command {
|
||||
@override
|
||||
Future execute(DataCommand command) async {
|
||||
var data = DataStringReplacePattern.fromJson(getParam(command));
|
||||
|
||||
var text = data.text;
|
||||
var exitCode = 0;
|
||||
|
||||
var start = text.indexOf(data.startPattern, data.startAt);
|
||||
var end = text.indexOf(data.endPattern, start);
|
||||
text = text.replaceRange(start, end, data.value);
|
||||
|
||||
await setProperty(data.setValue, text, showPrint: data.showPrint);
|
||||
|
||||
return await complete(exitCode, command);
|
||||
}
|
||||
}
|
||||
|
||||
class StringIndex extends Command {
|
||||
@override
|
||||
Future execute(DataCommand command) async {
|
||||
var data = DataStringIndex.fromJson(getParam(command));
|
||||
|
||||
var text = data.text;
|
||||
var exitCode = 0;
|
||||
var index = text.indexOf(data.value);
|
||||
|
||||
await setProperty(data.setValue, index, showPrint: data.showPrint);
|
||||
|
||||
return await complete(exitCode, command);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -950,6 +950,41 @@ class DataStringReplace extends DataParam {
|
|||
Map<String, dynamic> toJson() => _$DataStringReplaceToJson(this);
|
||||
}
|
||||
|
||||
//String Replace with Pattern
|
||||
@JsonSerializable()
|
||||
class DataStringReplacePattern extends DataParam {
|
||||
DataStringReplacePattern();
|
||||
|
||||
int startAt = 0;
|
||||
late String startPattern; //시작 패턴
|
||||
late String endPattern; //종료 패턴
|
||||
late String text; //원본 텍스트
|
||||
late String value; //교체될 값
|
||||
late String setValue; //결과 저장소
|
||||
|
||||
factory DataStringReplacePattern.fromJson(Map<String, dynamic> json) =>
|
||||
_$DataStringReplacePatternFromJson(json);
|
||||
@override
|
||||
Map<String, dynamic> toJson() => _$DataStringReplacePatternToJson(this);
|
||||
}
|
||||
|
||||
//String Find Index
|
||||
@JsonSerializable()
|
||||
class DataStringIndex extends DataParam {
|
||||
DataStringIndex();
|
||||
|
||||
int startAt = 0;
|
||||
late String text;
|
||||
late String value;
|
||||
late String setValue;
|
||||
|
||||
factory DataStringIndex.fromJson(Map<String, dynamic> json) =>
|
||||
_$DataStringIndexFromJson(json);
|
||||
@override
|
||||
Map<String, dynamic> toJson() => _$DataStringIndexToJson(this);
|
||||
}
|
||||
|
||||
|
||||
//Web String Replace Item
|
||||
@JsonSerializable()
|
||||
class DataStringReplacePair extends DataParam {
|
||||
|
|
|
|||
|
|
@ -85,6 +85,8 @@ const _$CommandTypeEnumMap = {
|
|||
CommandType.SlackBuild: 'SlackBuild',
|
||||
CommandType.StringSub: 'StringSub',
|
||||
CommandType.StringReplace: 'StringReplace',
|
||||
CommandType.StringReplacePattern: 'StringReplacePattern',
|
||||
CommandType.StringIndex: 'StringIndex',
|
||||
CommandType.Jira: 'Jira',
|
||||
CommandType.Zip: 'Zip',
|
||||
CommandType.Shell: 'Shell',
|
||||
|
|
@ -1594,6 +1596,66 @@ Map<String, dynamic> _$DataStringReplaceToJson(DataStringReplace instance) =>
|
|||
'pair': instance.pair,
|
||||
};
|
||||
|
||||
DataStringReplacePattern _$DataStringReplacePatternFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
DataStringReplacePattern()
|
||||
..workspace = json['workspace'] as String?
|
||||
..passExitCodes = (json['passExitCodes'] as List<dynamic>?)
|
||||
?.map((e) => (e as num).toInt())
|
||||
.toList()
|
||||
..setResult = json['setResult'] as String?
|
||||
..setExitCode = json['setExitCode'] as String?
|
||||
..showPrint = json['showPrint'] as bool?
|
||||
..startAt = (json['startAt'] as num).toInt()
|
||||
..startPattern = json['startPattern'] as String
|
||||
..endPattern = json['endPattern'] as String
|
||||
..text = json['text'] as String
|
||||
..value = json['value'] as String
|
||||
..setValue = json['setValue'] as String;
|
||||
|
||||
Map<String, dynamic> _$DataStringReplacePatternToJson(
|
||||
DataStringReplacePattern instance) =>
|
||||
<String, dynamic>{
|
||||
'workspace': instance.workspace,
|
||||
'passExitCodes': instance.passExitCodes,
|
||||
'setResult': instance.setResult,
|
||||
'setExitCode': instance.setExitCode,
|
||||
'showPrint': instance.showPrint,
|
||||
'startAt': instance.startAt,
|
||||
'startPattern': instance.startPattern,
|
||||
'endPattern': instance.endPattern,
|
||||
'text': instance.text,
|
||||
'value': instance.value,
|
||||
'setValue': instance.setValue,
|
||||
};
|
||||
|
||||
DataStringIndex _$DataStringIndexFromJson(Map<String, dynamic> json) =>
|
||||
DataStringIndex()
|
||||
..workspace = json['workspace'] as String?
|
||||
..passExitCodes = (json['passExitCodes'] as List<dynamic>?)
|
||||
?.map((e) => (e as num).toInt())
|
||||
.toList()
|
||||
..setResult = json['setResult'] as String?
|
||||
..setExitCode = json['setExitCode'] as String?
|
||||
..showPrint = json['showPrint'] as bool?
|
||||
..startAt = (json['startAt'] as num).toInt()
|
||||
..text = json['text'] as String
|
||||
..value = json['value'] as String
|
||||
..setValue = json['setValue'] as String;
|
||||
|
||||
Map<String, dynamic> _$DataStringIndexToJson(DataStringIndex instance) =>
|
||||
<String, dynamic>{
|
||||
'workspace': instance.workspace,
|
||||
'passExitCodes': instance.passExitCodes,
|
||||
'setResult': instance.setResult,
|
||||
'setExitCode': instance.setExitCode,
|
||||
'showPrint': instance.showPrint,
|
||||
'startAt': instance.startAt,
|
||||
'text': instance.text,
|
||||
'value': instance.value,
|
||||
'setValue': instance.setValue,
|
||||
};
|
||||
|
||||
DataStringReplacePair _$DataStringReplacePairFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
DataStringReplacePair()
|
||||
|
|
|
|||
Loading…
Reference in a new issue