aboutsummaryrefslogtreecommitdiff
path: root/lib/strings
AgeCommit message (Collapse)Author
2026-01-15all: convert license and copyright to use SPDX identifiersShulhan
With help of spdxconv tool [1], we able to bulk update all files license and copyright format to comply with SPDX formats. [1] https://kilabit.info/project/spdxconv/
2025-01-23all: use for-range with numericShulhan
Go 1.22 now support for-range on numeric value.
2025-01-23all: replace "interface{}" with "any"Shulhan
2024-12-29all: merge package "lib/ints" and "lib/ints64" into "slices"Shulhan
Now that Go has type parameter, we can use it to use the same function that accept different types for working with slice of int, int64.
2024-03-05all: comply with linter recommendations #3Shulhan
For HTTP server that use TLS, set the minimum TLS version and ReadHeaderTimeout to mitigate slowloris attack. For HTTP client or server that parameterize the use of InsecureSkipVerify, annotate the line with "nolint:gosec" to allow the code pass the check. Library that still use sha1, in example in DKIM and TOTP, skip the warnings by annotating the line with "nolint:gosec". A pointer variable now allocated their address before assigning its value. Any error that returned now wrapped using "%w". Also, replace error checking using [errors.Is] or [errors.As] instead of using equal or not-equal operators. In "lib/http", replace any usage of "math/rand" with "crypto/rand". Any call of [math/big.Rat.SetString] now annotated with "nolint:gosec" since its false positive, the issue has been fixed in Go >= 1.17.7. Any switch case that does not cover the rest of the possible values now handled by adding the cases or by replacing the "default" case with the rest of values.
2024-03-05all: comply with linter recommendations #2Shulhan
HTTP request now implicitly create request with context. Any false positive related to not closing HTTP response body has been annotated with "nolint:bodyclose". In the example code, use consistent "// Output:" comment format, by prefixing with single space. Any comment on code now also prefixing with single space. An error returned without variables now use [errors.New] instead of [fmt.Errorf]. Any error returned using [fmt.Errorf] now wrapped using "%w" instead of "%s". Also, replace error checking using [errors.Is] or [errors.As], instead of using equal/not-equal operator. Any statement like "x = x OP y" now replaced with "x OP= y". Also, swap statement is simplified using "x, y = y, x". Any switch statement with single case now replaced with if-condition. Any call to defer on function or program that call [os.Exit], now replaced by calling the deferred function directly. Any if-else condition now replaced with switch statement, if possible.
2024-03-02all: move the repository to "git.sr.ht/~shulhan/pakakeh.go"Shulhan
There are several reasons that why we move from github.com. First, related to the name of package. We accidentally name the package with "share" a common word in English that does not reflect the content of repository. By moving to other repository, we can rename it to better and unique name, in this "pakakeh.go". Pakakeh is Minang word for tools, and ".go" suffix indicate that the repository related to Go programming language. Second, supporting open source. The new repository is hosted under sourcehut.org, the founder is known to support open source, and all their services are licensed under AGPL, unlike GitHub that are closed sources. Third, regarding GitHub CoPilot. The GitHub Terms of Service [1], allow any public content that are hosted there granted them to parse the content. On one side, GitHub helps and flourish the open source, but on another side have an issues regarding scraping the copyleft license [2]. [1]: https://docs.github.com/en/site-policy/github-terms/github-terms-of-service#4-license-grant-to-us [2]: https://githubcopilotinvestigation.com
2024-01-24all: fix the warnings from linter reviveShulhan
This rename all variable "Ids" into "ListID".
2023-05-20all: remove any usage of debug.Value in all packagesShulhan
Using global debug value for all packages turns out is not a good idea.
2023-04-05lib/strings: fix warnings from linter reviveShulhan
2023-04-05lib/strings: merge lib/parser hereShulhan
The first idea of parser is to provide generic parser for both bytes and string. After we introduce lib/parser there is not much changes to that package. Also, since we create another Parser in lib/bytes that accept and return token as []byte, the lib/parser is not unique anymore. The following function/methods changes to minimize conflict in the future, * Lines become LinesOfFile * New become NewParser * Open become OpenForParser * Token become Read * TokenEscaped become ReadEscaped * TokenTrimSpace become ReadNoSpace
2022-08-03lib/strings: update comment format on CleanWikiMarkupShulhan
2022-08-03lib/strings: clean up test codesShulhan
Changes, * Use test.Data for test that require longer text input and output * Replace variable declaration ":=" with explicit one. * Use literal string
2022-05-09all: reformat all codes using gofmt 1.19 (the Go tip)Shulhan
2021-09-25lib/strings: update comment and example of TrimAlnumShulhan
2021-09-25lib/strings: add function AlnumShulhan
The Alnum remove non alpha-numeric character from text and return it. Its accept the string to be cleanup and boolean parameter withSpace. If withSpace is true then white space is allowed, otherwise it would also be removed from text.
2021-03-14all: refactoring the test.Assert and test.AssertBench signatureShulhan
Previously, the test.Assert and test.AssertBench functions has the boolean parameter to print the stack trace of test in case its not equal. Since this parameter is not mandatory and its usually always set to "true", we remove them from function signature to simplify the call to Assert and AssertBench.
2020-08-03strings: add function to delete a value from slice of stringShulhan
2020-06-06all: use default linter optionsShulhan
2020-04-23strings: add white space to Split exampleShulhan
Show that the Split function will split the string no matter how many spaces in them.
2020-03-29strings: add function SingleSpaceShulhan
The SingleSpace function convert all sequences of white spaces into single space ' '.
2020-03-29strings: check for other white spaces on MergeSpacesShulhan
Previously, only ' ' that checked by MergeSpaces function. This changes add '\t', '\v', '\f', and '\r' as another spaces.
2020-02-13strings: simplify increment and decrement by one on Reverse functionShulhan
2020-02-13strings: move JSONEscape and JSONUnescape to package jsonShulhan
2020-01-07strings: add function to reverse a stringShulhan
2020-01-07strings: fix the comment on JSONUnescapeShulhan
2019-10-22strings: fix the logic of SplitShulhan
2019-09-25all: fix linter warningsShulhan
2019-09-25strings: add function to convert slice of string to slice of slice of bytesShulhan
2019-06-14all: fix nolint formatShulhan
The valid syntax to suppress linter warnings is "//nolint:<name>" with no space between comment and "nolint" and between ":". Also, we move the placement of nolint directive to the top of statements for multiple nolint in the same scope. While at it, fix and supress some linter warnings.
2019-05-25strings: move the Uniq function to strings.goShulhan
2019-05-25strings: add function to append uniq values to slice of stringsShulhan
The AppendUniq will append a string to slice only if the same string its not already exist. The string is compared in case insensitive manner.
2019-03-02all: changes affected by refactoring on package "numbers"Shulhan
2019-01-29lib/strings: simplify if-else conditionShulhan
2018-11-30all: fix and suppress linter warnings on long linesShulhan
2018-11-30all: minimize and suppress linter warnings for global variablesShulhan
2018-11-30all: fix linter warnings on naked returnShulhan
2018-11-29all: fix warnings from lintersShulhan
2018-11-29all: fixes warning from lintersShulhan
2018-11-29all: fix warning from lintersShulhan
2018-09-17Merge package "github.com/shuLhan/tekstus", part 3/3Shulhan
2018-09-17Merge package "github.com/shuLhan/tekstus", part 2/3Shulhan
2018-09-17lib: rename package "string" to "strings"Shulhan