diff options
author | Munyoki Kilyungi | 2023-08-21 15:03:20 +0300 |
---|---|---|
committer | Munyoki Kilyungi | 2023-08-21 15:06:06 +0300 |
commit | 8e1e4cceab516afab46ccced63ca9edab663ca11 (patch) | |
tree | cad625c3ecf0a555d7b56b777cdade535cb30d07 /dump/strings.scm | |
parent | 51b3c0548c98e0bc05e11a89cbf6b75d31b9f8d5 (diff) | |
download | gn-transform-databases-8e1e4cceab516afab46ccced63ca9edab663ca11.tar.gz |
Rename dump -> transform
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
Diffstat (limited to 'dump/strings.scm')
-rw-r--r-- | dump/strings.scm | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/dump/strings.scm b/dump/strings.scm deleted file mode 100644 index e965f03..0000000 --- a/dump/strings.scm +++ /dev/null @@ -1,101 +0,0 @@ -(define-module (dump strings) - #:use-module (srfi srfi-1) - #:use-module (srfi srfi-19) - #:use-module (ice-9 match) - #:use-module (ice-9 string-fun) - #:use-module (ice-9 textual-ports) - #:export (string-blank? - time-unix->string - string-blank? - string-split-substring - delete-substrings - replace-substrings - sanitize-rdf-string - snake->lower-camel - string-capitalize-first)) - -(define (time-unix->string seconds . maybe-format) - "Given an integer saying the number of seconds since the Unix -epoch (1970-01-01 00:00:00), SECONDS, format it as a human readable -date and time-string, possible using the MAYBE-FORMAT." - (letrec ([time-unix->time-utc - (lambda (seconds) - (add-duration - (date->time-utc (make-date 0 0 0 0 1 1 1970 0)) - (make-time time-duration 0 seconds)))]) - (apply date->string - (time-utc->date (time-unix->time-utc seconds)) - maybe-format))) - -(define (string-blank? str) - "Return non-#f if STR consists only of whitespace characters." - (string-every char-set:whitespace str)) - -(define (string-split-substring str substr) - "Split the string @var{str} into a list of substrings delimited by the -substring @var{substr}." - - (define substrlen (string-length substr)) - (define strlen (string-length str)) - - (define (loop index start) - (cond - ((>= start strlen) (list "")) - ((not index) (list (substring str start))) - (else - (cons (substring str start index) - (let ((new-start (+ index substrlen))) - (loop (string-contains str substr new-start) - new-start)))))) - - (cond - ((string-contains str substr) => (lambda (idx) (loop idx 0))) - (else (list str)))) - -(define (delete-substrings str . substrings) - "Delete SUBSTRINGS, a list of strings, from STR." - (fold (lambda (substring result) - (string-replace-substring result substring "")) - str - substrings)) - -(define (replace-substrings str replacement-alist) - "Replace substrings in STR according to REPLACEMENT-ALIST, an -association list mapping substrings to their replacements." - (fold (match-lambda* - (((substring . replacement) str) - (string-replace-substring str substring replacement))) - str - replacement-alist)) - -(define (sanitize-rdf-string str) - (replace-substrings - (string-trim-both str) - '(("\r" . "\\r") - ("\n" . "\\n") - ("\"" . "'") - ("\v" . "") - ("\xad" . "") - ("\x28" . "") - ("\x29" . "") - ("\xa0" . " ") - ("\x02" . "") - ("\x01" . "")))) - -(define (snake->lower-camel str) - (let ((char-list (string->list str))) - (call-with-output-string - (lambda (port) - (put-char port (char-downcase (string-ref str 0))) - (map (lambda (char previous-char) - (unless (char=? char #\_) - (put-char port (if (char=? previous-char #\_) - (char-upcase char) - char)))) - (drop char-list 1) - char-list))))) - -(define (string-capitalize-first string) - (string-titlecase - (string-downcase string) 0 1)) - |