diff options
| -rwxr-xr-x | examples/dataset-metadata.scm | 18 | ||||
| -rw-r--r-- | transform/strings.scm | 31 |
2 files changed, 25 insertions, 24 deletions
diff --git a/examples/dataset-metadata.scm b/examples/dataset-metadata.scm index 53ff2d7..783b90c 100755 --- a/examples/dataset-metadata.scm +++ b/examples/dataset-metadata.scm @@ -12,24 +12,6 @@ (transform special-forms)) - -;; 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-transformer investigators ;; There are a few duplicate entries. We group by email to ;; deduplicate. 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 |
