Skip to content

Commit db3d5c5

Browse files
committed
Rename left/right variants to start/end
1 parent 0edcff5 commit db3d5c5

File tree

3 files changed

+62
-50
lines changed

3 files changed

+62
-50
lines changed

src/gleam/string.gleam

Lines changed: 35 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ fn do_trim(string: String) -> String {
558558
/// ## Examples
559559
///
560560
/// ```gleam
561-
/// trim_chars_left("..,hats,..", ".,")
561+
/// trim_chars("..,hats,..", ".,")
562562
/// // -> "hats"
563563
/// ```
564564
pub fn trim_chars(string: String, charset: String) -> String {
@@ -588,73 +588,85 @@ type Direction {
588588
Both
589589
}
590590

591-
/// Removes whitespace on the left of a `String`.
591+
/// Removes whitespace at the start of a `String`.
592592
///
593593
/// ## Examples
594594
///
595595
/// ```gleam
596-
/// trim_left(" hats \n")
596+
/// trim_start(" hats \n")
597597
/// // -> "hats \n"
598598
/// ```
599599
///
600+
pub fn trim_start(string: String) -> String {
601+
do_trim_start(string)
602+
}
603+
604+
/// An alias for trim_start
605+
@deprecated("Use trim_start. There is no behavior change")
600606
pub fn trim_left(string: String) -> String {
601-
do_trim_left(string)
607+
trim_start(string)
602608
}
603609

604-
@external(javascript, "../gleam_stdlib.mjs", "trim_left")
605-
fn do_trim_left(string: String) -> String {
610+
@external(javascript, "../gleam_stdlib.mjs", "trim_start")
611+
fn do_trim_start(string: String) -> String {
606612
erl_trim(string, Leading)
607613
}
608614

609-
/// Removes whitespace on the right of a `String`.
615+
/// Removes whitespace at the end of a `String`.
610616
///
611617
/// ## Examples
612618
///
613619
/// ```gleam
614-
/// trim_right(" hats \n")
620+
/// trim_end(" hats \n")
615621
/// // -> " hats"
616622
/// ```
617623
///
624+
pub fn trim_end(string: String) -> String {
625+
do_trim_end(string)
626+
}
627+
628+
/// An alias for trim_end
629+
@deprecated("Use trim_end. There is no behavior change")
618630
pub fn trim_right(string: String) -> String {
619-
do_trim_right(string)
631+
trim_end(string)
620632
}
621633

622-
@external(javascript, "../gleam_stdlib.mjs", "trim_right")
623-
fn do_trim_right(string: String) -> String {
634+
@external(javascript, "../gleam_stdlib.mjs", "trim_end")
635+
fn do_trim_end(string: String) -> String {
624636
erl_trim(string, Trailing)
625637
}
626638

627-
/// Like `trim_left`, but removes the specified chars on the left of a `String`
639+
/// Like `trim_start`, but removes the specified chars at the start of a `String`
628640
///
629641
/// ## Examples
630642
///
631643
/// ```gleam
632-
/// trim_chars_left("..,hats,..", ".,")
644+
/// trim_chars_start("..,hats,..", ".,")
633645
/// // -> "hats,.."
634646
/// ```
635-
pub fn trim_chars_left(string: String, charset: String) -> String {
636-
do_trim_chars_left(string, charset)
647+
pub fn trim_chars_start(string: String, charset: String) -> String {
648+
do_trim_chars_start(string, charset)
637649
}
638650

639-
@external(javascript, "../gleam_stdlib.mjs", "trim_chars_left")
640-
fn do_trim_chars_left(string: String, charset: String) -> String {
651+
@external(javascript, "../gleam_stdlib.mjs", "trim_chars_start")
652+
fn do_trim_chars_start(string: String, charset: String) -> String {
641653
erl_trim_chars(string, Leading, erl_to_graphemes(charset))
642654
}
643655

644-
/// Like `trim_right`, but removes the specified chars on the right of a `String`
656+
/// Like `trim_end`, but removes the specified chars at the end of a `String`
645657
///
646658
/// ## Examples
647659
///
648660
/// ```gleam
649-
/// trim_chars_right("..,hats,..", ".,")
661+
/// trim_chars_end("..,hats,..", ".,")
650662
/// // -> "..,hats"
651663
/// ```
652-
pub fn trim_chars_right(string: String, charset: String) -> String {
653-
do_trim_chars_right(string, charset)
664+
pub fn trim_chars_end(string: String, charset: String) -> String {
665+
do_trim_chars_end(string, charset)
654666
}
655667

656-
@external(javascript, "../gleam_stdlib.mjs", "trim_chars_right")
657-
fn do_trim_chars_right(string: String, charset: String) -> String {
668+
@external(javascript, "../gleam_stdlib.mjs", "trim_chars_end")
669+
fn do_trim_chars_end(string: String, charset: String) -> String {
658670
erl_trim_chars(string, Trailing, erl_to_graphemes(charset))
659671
}
660672

src/gleam_stdlib.mjs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -262,33 +262,33 @@ const unicode_whitespaces = [
262262
"\u2029", // Paragraph separator
263263
].join("");
264264

265-
const left_trim_regex = new_left_trim_regexp(unicode_whitespaces);
265+
const start_trim_regex = new_start_trim_regexp(unicode_whitespaces);
266266
const right_trim_regex = new_right_trim_regexp(unicode_whitespaces);
267267

268268
export function trim(string) {
269-
return trim_left(trim_right(string));
269+
return trim_start(trim_end(string));
270270
}
271271

272-
export function trim_left(string) {
273-
return string.replace(left_trim_regex, "");
272+
export function trim_start(string) {
273+
return string.replace(start_trim_regex, "");
274274
}
275275

276-
export function trim_right(string) {
276+
export function trim_end(string) {
277277
return string.replace(right_trim_regex, "");
278278
}
279279

280280
export function trim_chars(string, charset) {
281-
const trimmed_right = trim_chars_right(string, charset);
282-
return trim_chars_left(trimmed_right, charset);
281+
const trimmed_right = trim_chars_end(string, charset);
282+
return trim_chars_start(trimmed_right, charset);
283283
}
284284

285-
export function trim_chars_left(string, charset) {
286-
const trim_regexp = new_left_trim_regexp(charset);
285+
export function trim_chars_start(string, charset) {
286+
const trim_regexp = new_start_trim_regexp(charset);
287287

288288
return string.replace(trim_regexp, "")
289289
}
290290

291-
export function trim_chars_right(string, charset) {
291+
export function trim_chars_end(string, charset) {
292292
const trim_regexp = new_right_trim_regexp(charset);
293293

294294
return string.replace(trim_regexp, "")
@@ -974,7 +974,7 @@ export function bit_array_compare(first, second) {
974974
return new Lt(); // second has more items
975975
}
976976

977-
function new_left_trim_regexp(charset) {
977+
function new_start_trim_regexp(charset) {
978978
return new RegExp(`^([${charset}]*)`, "g");
979979
}
980980

test/gleam/string_test.gleam

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -164,51 +164,51 @@ pub fn trim_test() {
164164
|> should.equal("hats")
165165
}
166166

167-
pub fn trim_left_test() {
167+
pub fn trim_start_test() {
168168
" hats \n"
169-
|> string.trim_left
169+
|> string.trim_start
170170
|> should.equal("hats \n")
171171
}
172172

173-
pub fn trim_left_rtl_test() {
173+
pub fn trim_start_rtl_test() {
174174
" עברית "
175-
|> string.trim_left
175+
|> string.trim_start
176176
|> should.equal("עברית ")
177177
}
178178

179-
pub fn trim_right_rtl_test() {
179+
pub fn trim_end_rtl_test() {
180180
" עברית "
181-
|> string.trim_right
181+
|> string.trim_end
182182
|> should.equal(" עברית")
183183
}
184184

185-
pub fn trim_right_test() {
185+
pub fn trim_end_test() {
186186
" hats \n"
187-
|> string.trim_right
187+
|> string.trim_end
188188
|> should.equal(" hats")
189189
}
190190

191-
pub fn trim_chars_left_test() {
191+
pub fn trim_chars_start_test() {
192192
",..hats..,"
193-
|> string.trim_chars_left(",.")
193+
|> string.trim_chars_start(",.")
194194
|> should.equal("hats..,")
195195
}
196196

197-
pub fn trim_chars_left_rtl_test() {
197+
pub fn trim_chars_start_rtl_test() {
198198
"שמש"
199-
|> string.trim_chars_left("ש")
199+
|> string.trim_chars_start("ש")
200200
|> should.equal("מש")
201201
}
202202

203-
pub fn trim_chars_right_test() {
203+
pub fn trim_chars_end_test() {
204204
",..hats..,"
205-
|> string.trim_chars_right(",.")
205+
|> string.trim_chars_end(",.")
206206
|> should.equal(",..hats")
207207
}
208208

209-
pub fn trim_chars_right_rtl_test() {
209+
pub fn trim_chars_end_rtl_test() {
210210
"שמש"
211-
|> string.trim_chars_right("ש")
211+
|> string.trim_chars_end("ש")
212212
|> should.equal("שמ")
213213
}
214214

0 commit comments

Comments
 (0)