forked from cubetiq/cubetiq_dart_shared
Task: Add extensions for string nullable and nonull functions and text export for text formatter
This commit is contained in:
parent
90226fe52b
commit
881aaae3ad
35
lib/src/text/extension.dart
Normal file
35
lib/src/text/extension.dart
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import 'functions.dart';
|
||||||
|
|
||||||
|
extension StringExtensionOnNonull on String {
|
||||||
|
String? get capitalized {
|
||||||
|
return (isNotEmpty) ? '${this[0].toUpperCase()}${substring(1)}' : this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extension StringExtensionOnNullable on String? {
|
||||||
|
String? textFormat(List<dynamic> args) => StringUtils.textFormat(this, args);
|
||||||
|
|
||||||
|
String? decorator(Map<String, dynamic> params) =>
|
||||||
|
StringUtils.decorator(this, params);
|
||||||
|
|
||||||
|
bool get isBlank {
|
||||||
|
if (this == null) return true;
|
||||||
|
return this!.trim().isEmpty;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool get isNotBlank {
|
||||||
|
return !isBlank;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool get isNullOrEmpty {
|
||||||
|
return StringUtils.isNullOrEmpty(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool get isNotNullOrEmpty {
|
||||||
|
return !isNullOrEmpty;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool get isNullOrEmptyOrBlank => StringUtils.isNullOrEmptyOrBlank(this);
|
||||||
|
|
||||||
|
bool get isEqualsIgnoreCase => StringUtils.equalsIgnoreCase(this, this);
|
||||||
|
}
|
49
lib/src/text/functions.dart
Normal file
49
lib/src/text/functions.dart
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
import 'text_formatter.dart';
|
||||||
|
|
||||||
|
class StringUtils {
|
||||||
|
/// Format number with precision
|
||||||
|
static String format(double n, [int precision = 2]) {
|
||||||
|
return n.toStringAsFixed(n.truncateToDouble() == n ? precision : precision);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Text format with custom args
|
||||||
|
static String? textFormat(String? text, List<dynamic> args) =>
|
||||||
|
TextFormatter(text).format(args);
|
||||||
|
|
||||||
|
/// Text decorator with custom key/value params
|
||||||
|
static String? decorator(String? text, Map<String, dynamic> params) =>
|
||||||
|
TextFormatter(text).decorate(params);
|
||||||
|
|
||||||
|
static String? asLowerCaseThenTrim(String? text) =>
|
||||||
|
text?.toLowerCase().trim();
|
||||||
|
static String? asUpperCaseThenTrim(String? text) =>
|
||||||
|
text?.toUpperCase().trim();
|
||||||
|
|
||||||
|
/// Check string is null or empty text
|
||||||
|
static bool isNullOrEmpty(String? text) {
|
||||||
|
if (text == null) return true;
|
||||||
|
return text.isEmpty;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Check string is null or empty or blank text
|
||||||
|
static bool isNullOrEmptyOrBlank(String? text) {
|
||||||
|
if (isNullOrEmpty(text)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return text!.trim().isEmpty;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Check string pair is equals or not with ignore-case and trim
|
||||||
|
static bool equalsIgnoreCase(String? a, String? b, {trim = false}) {
|
||||||
|
if (a == b) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (trim == true) {
|
||||||
|
a = asLowerCaseThenTrim(a);
|
||||||
|
b = asLowerCaseThenTrim(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
return a?.toLowerCase() == b?.toLowerCase();
|
||||||
|
}
|
||||||
|
}
|
@ -1,3 +1,5 @@
|
|||||||
library cubetiq;
|
library cubetiq;
|
||||||
|
|
||||||
export 'src/text/text_formatter.dart';
|
export 'src/text/text_formatter.dart';
|
||||||
|
export 'src/text/extension.dart';
|
||||||
|
export 'src/text/functions.dart';
|
||||||
|
Loading…
Reference in New Issue
Block a user