Skip to content

feat: refactor string package remove-last#1079

Merged
kgryte merged 14 commits into
developfrom
remove-last
Sep 21, 2023
Merged

feat: refactor string package remove-last#1079
kgryte merged 14 commits into
developfrom
remove-last

Conversation

@steff456
Copy link
Copy Markdown
Contributor

@steff456 steff456 commented Aug 8, 2023

Part of #1062

Description

What is the purpose of this pull request?

This pull request:

  • Refactors the string package @stdlib/string/remove-last
  • Adds @stdlib/string/base/remove-last
  • Adds @stdlib/string/base/remove-last-code-point
  • Adds @stdlib/string/base/remove-last-grapheme-cluster
  • Fixes the name in the package.json in @stdlib/string/base/remove-first, @stdlib/string/base/remove-first-code-point, @stdlib/string/base/remove-first-grapheme-cluster

Related Issues

Does this pull request have any related issues?

This pull request:

Questions

Any questions for reviewers of this pull request?

No.

Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

No.

Checklist

Please ensure the following tasks are completed before submitting this pull request.


@stdlib-js/reviewers

Comment thread lib/node_modules/@stdlib/string/base/remove-last-code-point/lib/main.js Outdated
Comment thread lib/node_modules/@stdlib/string/base/remove-last/test/test.js Outdated
Comment thread lib/node_modules/@stdlib/string/remove-last/README.md Outdated
Comment thread lib/node_modules/@stdlib/string/remove-last/README.md Outdated
Comment thread lib/node_modules/@stdlib/string/remove-last/bin/cli Outdated
Comment thread lib/node_modules/@stdlib/string/remove-last/docs/repl.txt Outdated
Comment thread lib/node_modules/@stdlib/string/remove-last/docs/types/index.d.ts Outdated
Comment thread lib/node_modules/@stdlib/string/remove-last/docs/usage.txt Outdated
Comment thread lib/node_modules/@stdlib/string/remove-last/README.md Outdated
Comment thread lib/node_modules/@stdlib/string/remove-last/lib/main.js
Comment thread lib/node_modules/@stdlib/string/remove-last/test/test.cli.js Outdated
Comment thread lib/node_modules/@stdlib/string/remove-last/test/test.cli.js Outdated
Comment thread lib/node_modules/@stdlib/string/remove-last/test/test.js Outdated
Comment thread lib/node_modules/@stdlib/string/base/remove-last/test/test.js Outdated
@stdlib-bot
Copy link
Copy Markdown
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{red}125/137$
$\color{green}+91.24\%$
$\color{red}8/9$
$\color{green}+88.89\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}125/137$
$\color{green}+91.24\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{red}125/137$
$\color{green}+91.24\%$
$\color{red}8/9$
$\color{green}+88.89\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}125/137$
$\color{green}+91.24\%$
string/base/remove-last-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@stdlib-bot
Copy link
Copy Markdown
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{red}125/137$
$\color{green}+91.24\%$
$\color{red}8/9$
$\color{green}+88.89\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}125/137$
$\color{green}+91.24\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{red}125/137$
$\color{green}+91.24\%$
$\color{red}8/9$
$\color{green}+88.89\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}125/137$
$\color{green}+91.24\%$
string/base/remove-last-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

Copy link
Copy Markdown
Member

@kgryte kgryte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working on this @steff456. Left a few comments regarding the handling of code points and grapheme clusters. Once these are resolved, should be ready for merge.

@stdlib-bot
Copy link
Copy Markdown
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{red}134/137$
$\color{green}+97.81\%$
$\color{red}9/10$
$\color{green}+90.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}134/137$
$\color{green}+97.81\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{red}134/137$
$\color{green}+97.81\%$
$\color{red}9/10$
$\color{green}+90.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}134/137$
$\color{green}+97.81\%$
string/base/remove-last-grapheme-cluster $\color{green}127/127$
$\color{green}+100.00\%$
$\color{green}9/9$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}127/127$
$\color{green}+100.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@stdlib-bot
Copy link
Copy Markdown
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{red}134/137$
$\color{green}+97.81\%$
$\color{red}9/10$
$\color{green}+90.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}134/137$
$\color{green}+97.81\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{red}134/137$
$\color{green}+97.81\%$
$\color{red}9/10$
$\color{green}+90.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}134/137$
$\color{green}+97.81\%$
string/base/remove-last-grapheme-cluster $\color{green}127/127$
$\color{green}+100.00\%$
$\color{green}9/9$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}127/127$
$\color{green}+100.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-first $\color{green}177/177$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}177/177$
$\color{green}+100.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@stdlib-bot
Copy link
Copy Markdown
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{red}134/137$
$\color{green}+97.81\%$
$\color{red}9/10$
$\color{green}+90.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}134/137$
$\color{green}+97.81\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-last-grapheme-cluster $\color{green}127/127$
$\color{green}+0.00\%$
$\color{green}9/9$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}127/127$
$\color{green}+0.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-first $\color{green}177/177$
$\color{green}+0.00\%$
$\color{green}20/20$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}177/177$
$\color{green}+0.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@stdlib-bot
Copy link
Copy Markdown
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-last-grapheme-cluster $\color{green}127/127$
$\color{green}+0.00\%$
$\color{green}9/9$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}127/127$
$\color{green}+0.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-first $\color{green}177/177$
$\color{green}+0.00\%$
$\color{green}20/20$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}177/177$
$\color{green}+0.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@stdlib-bot
Copy link
Copy Markdown
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-last-grapheme-cluster $\color{red}133/135$
$\color{red}--1.48\%$
$\color{red}10/11$
$\color{red}--9.09\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{red}133/135$
$\color{red}--1.48\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-first $\color{green}177/177$
$\color{green}+0.00\%$
$\color{green}20/20$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}177/177$
$\color{green}+0.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@stdlib-bot
Copy link
Copy Markdown
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-last-grapheme-cluster $\color{green}132/132$
$\color{green}+1.50\%$
$\color{green}10/10$
$\color{green}+10.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}132/132$
$\color{green}+1.50\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-first $\color{green}177/177$
$\color{green}+0.00\%$
$\color{green}20/20$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}177/177$
$\color{green}+0.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

i = 0;
num = 0;
while ( num < total - n ) {
i = nextGraphemeClusterBreak( str, i );
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This works and should be fine for now. Leaving a comment for future reference that this is a two-pass algorithm. Once we update prev-grapheme-cluster-break, we should be able to implement as a one-pass algorithm.

Comment thread lib/node_modules/@stdlib/string/remove-last/lib/main.js
Copy link
Copy Markdown
Member

@kgryte kgryte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@steff456 All review comments have now been addressed. This is ready for merge.

@stdlib-bot
Copy link
Copy Markdown
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-last-grapheme-cluster $\color{green}132/132$
$\color{green}+0.00\%$
$\color{green}10/10$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}132/132$
$\color{green}+0.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-first $\color{green}177/177$
$\color{green}+0.00\%$
$\color{green}20/20$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}177/177$
$\color{green}+0.00\%$
string/remove-last $\color{green}173/173$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}173/173$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@kgryte kgryte merged commit 982de75 into develop Sep 21, 2023
@kgryte kgryte deleted the remove-last branch September 21, 2023 21:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants