Skip to content

Commit f9ac90b

Browse files
committed
feat: add initials extension to string
1 parent 6dc553e commit f9ac90b

File tree

8 files changed

+56
-23
lines changed

8 files changed

+56
-23
lines changed

.dart_tool/package_config.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,9 @@
153153
},
154154
{
155155
"name": "file_picker",
156-
"rootUri": "file:///Users/kishor/.pub-cache/hosted/pub.dev/file_picker-5.5.0",
156+
"rootUri": "file:///Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0",
157157
"packageUri": "lib/",
158-
"languageVersion": "2.17"
158+
"languageVersion": "2.19"
159159
},
160160
{
161161
"name": "file_selector_linux",
@@ -572,7 +572,7 @@
572572
"languageVersion": "3.0"
573573
}
574574
],
575-
"generated": "2023-10-12T10:29:39.107737Z",
575+
"generated": "2023-10-16T10:49:55.061202Z",
576576
"generator": "pub",
577577
"generatorVersion": "3.1.3"
578578
}

.dart_tool/package_config_subset

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,9 @@ file
9999
file:///Users/kishor/.pub-cache/hosted/pub.dev/file-7.0.0/
100100
file:///Users/kishor/.pub-cache/hosted/pub.dev/file-7.0.0/lib/
101101
file_picker
102-
2.17
103-
file:///Users/kishor/.pub-cache/hosted/pub.dev/file_picker-5.5.0/
104-
file:///Users/kishor/.pub-cache/hosted/pub.dev/file_picker-5.5.0/lib/
102+
2.19
103+
file:///Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0/
104+
file:///Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0/lib/
105105
file_selector_linux
106106
2.18
107107
file:///Users/kishor/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2/

.flutter-plugins

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This is a generated file; do not edit or check into version control.
2-
file_picker=/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-5.5.0/
2+
file_picker=/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0/
33
file_selector_linux=/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2/
44
file_selector_macos=/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.3+1/
55
file_selector_windows=/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3/

.flutter-plugins-dependencies

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-5.5.0/","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.8/","native_build":true,"dependencies":[]}],"android":[{"name":"file_picker","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-5.5.0/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/kishor/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.15/","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_android-0.8.7+4/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]}],"macos":[{"name":"file_selector_macos","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.3+1/","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1/","native_build":false,"dependencies":["file_selector_macos"]}],"linux":[{"name":"file_selector_linux","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2/","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1/","native_build":false,"dependencies":["file_selector_linux"]}],"windows":[{"name":"file_selector_windows","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3/","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1/","native_build":false,"dependencies":["file_selector_windows"]}],"web":[{"name":"file_picker","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-5.5.0/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_for_web-3.0.0/","dependencies":[]}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]}],"date_created":"2023-10-12 16:14:39.172015","version":"3.13.7"}
1+
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0/","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.8/","native_build":true,"dependencies":[]}],"android":[{"name":"file_picker","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/kishor/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.15/","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_android-0.8.7+4/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]}],"macos":[{"name":"file_selector_macos","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.3+1/","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1/","native_build":false,"dependencies":["file_selector_macos"]}],"linux":[{"name":"file_selector_linux","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2/","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1/","native_build":false,"dependencies":["file_selector_linux"]}],"windows":[{"name":"file_selector_windows","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3/","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1/","native_build":false,"dependencies":["file_selector_windows"]}],"web":[{"name":"file_picker","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_for_web-3.0.0/","dependencies":[]}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]}],"date_created":"2023-10-16 16:34:55.130765","version":"3.13.7"}

CHANGELOG.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
1+
# 1.2.16
2+
- BREAKING CHANGES
3+
- renamed `removeNextLine` to `replaceEscaped`
4+
- added `removeExtraSpace` string extension
5+
- added `initials` string extension to get initial letter of string
6+
17
# 1.2.15
2-
- added equalIgnoreCase and compareIgnoreCase extension on String
8+
- added `equalIgnoreCase` and `compareIgnoreCase` extension on String
39
- updated field to support multiple match validator
410
# 1.2.14
511
- added gradient borders
@@ -11,7 +17,7 @@
1117
- ConstrainedScrollableColumn
1218
- PaddedSpacedRow
1319
- PaddedSpacedColumn
14-
- SizedScrollableColumn
20+
- SizedScrollableRow
1521
- added useSafeArea property to ScrollableColumn
1622

1723
# 1.2.12

lib/src/extensions/string_extension.dart

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ extension StringX on String {
7878
/// uppercase
7979
String get uppercase => toUpperCase();
8080

81+
/// initials
82+
/// returns the initials of the string
83+
/// if the string is empty, returns an empty string
84+
/// if the string has one word, returns the first two characters
85+
/// if the string has two or more words, returns the first character of the first two words
86+
String get initials => _ReCase(this).getInitial();
87+
8188
/// equalsIgnoreCase
8289
/// equals two strings ignoring case
8390
bool equalsIgnoreCase(String match) {
@@ -110,20 +117,19 @@ extension StringX on String {
110117
return trim().replaceAll(' ', '');
111118
}
112119

113-
/// remove all \n from string
114-
String get removeNextLine {
120+
/// remove extra space from string
121+
String get removeExtraSpace {
115122
if (isBlank) return this;
116-
return trim().replaceAll('\n', '');
123+
return replaceAll(RegExp(r"\s+"), " ");
117124
}
118125

119126
/// remove all \n \r \t from string
120-
String get replaceNextLine {
127+
String replaceEscaped([String replacement = ' ']) {
121128
if (isBlank) return this;
122129
return trim()
123-
.replaceAll('\n', ' ')
124-
.replaceAll('\r', ' ')
125-
.replaceAll('\t', ' ')
126-
.trim();
130+
.replaceAll(RegExp(r'[\t\n\r\v\f]'), replacement)
131+
.trim()
132+
.removeExtraSpace;
127133
}
128134

129135
/// tries to parse as bool
@@ -337,6 +343,27 @@ class _ReCase {
337343
/// Title Case
338344
String get titleCase => _getPascalCase(separator: ' ');
339345

346+
/// Initials
347+
/// returns the initials of the string
348+
/// if the string is empty, returns an empty string
349+
/// if the string has one word, returns the first two characters
350+
/// if the string has two or more words, returns the first character of the first two words
351+
String getInitial() {
352+
if (_words.isEmpty) return '';
353+
if (_words.length == 1) {
354+
return '${_words.first[0].toUpperCase()}${_words.first[1].toUpperCase()}'
355+
.trim();
356+
}
357+
if (_words.length > 2) {
358+
return _words
359+
.getRange(0, 2)
360+
.map((word) => word[0].toUpperCase())
361+
.join()
362+
.trim();
363+
}
364+
return _words.map((word) => word[0].toUpperCase()).join().trim();
365+
}
366+
340367
String _getCamelCase({String separator = ''}) {
341368
List<String> words = _words.map(_upperCaseFirstLetter).toList();
342369
if (_words.isNotEmpty) {

pubspec.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,10 +205,10 @@ packages:
205205
dependency: "direct main"
206206
description:
207207
name: file_picker
208-
sha256: be325344c1f3070354a1d84a231a1ba75ea85d413774ec4bdf444c023342e030
208+
sha256: "903dd4ba13eae7cef64acc480e91bf54c3ddd23b5b90b639c170f3911e489620"
209209
url: "https://pub.dev"
210210
source: hosted
211-
version: "5.5.0"
211+
version: "6.0.0"
212212
file_selector_linux:
213213
dependency: transitive
214214
description:
@@ -746,4 +746,4 @@ packages:
746746
version: "3.1.2"
747747
sdks:
748748
dart: ">=3.1.0-185.0.dev <4.0.0"
749-
flutter: ">=3.7.0-0"
749+
flutter: ">=3.7.0"

pubspec.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: fp_util
22
description: Utilities and Extensions for num,BuildContext,EdgeInsets,File,String. constants for horizontal and vertical spacing.
3-
version: 1.2.15
3+
version: 1.2.16
44

55
homepage: https://mkcli.kishormainali.com/
66
repository: https://github.com/kishormainali/fp_util
@@ -18,7 +18,7 @@ dependencies:
1818
image_picker: ">=1.0.0 <2.0.0"
1919

2020
# file picker
21-
file_picker: ^5.5.0
21+
file_picker: ^6.0.0
2222

2323
# svg
2424
flutter_svg: ^2.0.7

0 commit comments

Comments
 (0)