diff options
Diffstat (limited to 'transform')
| -rw-r--r-- | transform/strings.scm | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/transform/strings.scm b/transform/strings.scm index aba554a..7544399 100644 --- a/transform/strings.scm +++ b/transform/strings.scm @@ -15,15 +15,34 @@ snake->lower-camel lower-case-and-replace-spaces string-capitalize-first - normalize-string-field)) + normalize-string-field + fix-email-id + investigator-attributes->id)) + +;; One email ID in the Investigators table has spaces in it. This +;; function fixes that. +(define (fix-email-id email) + (string-delete #\space email)) + +(define (investigator-attributes->id first-name last-name email) + ;; There is just one record corresponding to "Evan Williams" which + ;; does not have an email ID. To accommodate that record, we + ;; construct the investigator ID from not just the email ID, but + ;; also the first and the last names. It would be preferable to just + ;; find Evan Williams' email ID and insert it into the database. + (string->identifier "investigator" + (string-join + (list first-name last-name (fix-email-id email)) + "_") + #:separator "_")) (define (lower-case-and-replace-spaces str) (string-map - (lambda (c) - (if (char=? c #\space) - #\- ; replace space with hyphen - c)) ; convert character to lower case - (string-downcase str))) + (lambda (c) + (if (char=? c #\space) + #\- ; replace space with hyphen + c)) ; convert character to lower case + (string-downcase str))) (define (time-unix->string seconds . maybe-format) "Given an integer saying the number of seconds since the Unix |
