hackerbase/doc/d-utils.md

71 lines
1.8 KiB
Markdown

# Utility modules
These are various utility modules for other HackerBase libraries.
## util-time [module]
(import util-time)
Compatibility module for the differences between chicken scheme
version 5.2 and earlier and 5.3 and on.
### current-util-milliseconds [procedure]
(current-util-milliseconds)
Returns the number of milliseconds since process startup.
Under chicken scheme <5.3 it uses ```current-milliseconds``` and for
chicken scheme >=5.3 it uses ```current-process-milliseconds```.
Without this module compilation with ```current-milliseconds```
results in warnings on chicken scheme >=5.3 and compilation under
chicken scheme <5.3 results in error with
```current-process-milliseconds```.
### seconds->iso-date-string [procedure]
(seconds->iso-date-string . args)
Converts given seconds to ISO date string YYYY-MM-DD. Defaults to ```(current-seconds)```.
### today/iso [procedure]
(today/iso)
Returns today as ISO date string YYYY-MM-DD.
## util-csv [module]
(import util-csv)
This module provides a very simple, incomplete and incorrect but fast
CSV loader.
### (make-csv-line-parser separator string-delimiter) [procedure]
((make-csv-line-parser separator string-delimiter) line)
Curried version of fast CSV line parser with given separator and string delimiter.
* ```separator``` - separator character
* ```string-delimiger``` - string quotation character
* ```line``` - line to parse
### csv-parse-lines [procedure]
(csv-parse-lines lines separator: (separator ;) string-delimiter: (string-delimiter "))
Parses given lines and returns list of lists of strings.
### csv-parse [procedure]
(csv-parse fn . args)
Uses ```csv-parse-lines``` on lines read from given file ```fn```.
### csv-split-header [procedure]
(csv-split-header csv)
Splits given loaded CSV into two tables at the first empty row.