
Other major changes: - pg code now uses only binary format - pg timestamptz now always UTC (tz = 0), added doc section - added contracts to most pg "can't-convert" errors
63 lines
2.2 KiB
Racket
63 lines
2.2 KiB
Racket
#lang racket/base
|
|
(require scribble/manual
|
|
scribble/eval
|
|
unstable/sandbox
|
|
(for-label racket/base
|
|
racket/contract))
|
|
(provide (all-defined-out)
|
|
(for-label (all-from-out racket/base)
|
|
(all-from-out racket/contract)))
|
|
|
|
(define (tech/reference . pre-flows)
|
|
(apply tech #:doc '(lib "scribblings/reference/reference.scrbl") pre-flows))
|
|
|
|
(define (parheading . pre-flows)
|
|
(elem (apply bold pre-flows) (hspace 1)))
|
|
|
|
(define (wplink path . pre-flows)
|
|
(apply hyperlink (string-append "http://en.wikipedia.org/wiki/" path) pre-flows))
|
|
|
|
;; ----
|
|
|
|
#|
|
|
Whenever examples are changed, added, removed, or reordered, the
|
|
example log files must be regenerated. To do so, set log-mode below to
|
|
'record and run setup. Regenerating the logs require an environment
|
|
that defines the DSN 'db-scribble-env as a PostgreSQL data source.
|
|
|
|
Set log-mode back to 'replay before checking in the changes.
|
|
|
|
Use one evaluator (and log file) per scribble file, so that when DrDr
|
|
runs scribble files individually, they still work.
|
|
|#
|
|
|
|
(define log-mode 'replay)
|
|
|
|
(define (make-pg-eval log-file init?)
|
|
(let ([ev (make-log-based-eval log-file log-mode)])
|
|
(ev '(require racket/class
|
|
db
|
|
db/util/postgresql
|
|
db/util/datetime))
|
|
(when init?
|
|
(ev '(begin
|
|
;; Must be kept in sync with beginning of using-db.scrbl
|
|
(define pgc (dsn-connect 'db-scribble-env))
|
|
(query-exec pgc "create temporary table the_numbers (n integer, d varchar(20))")
|
|
(query-exec pgc "insert into the_numbers values (0, 'nothing')")
|
|
(query-exec pgc "insert into the_numbers values (1, 'the loneliest number')")
|
|
(query-exec pgc "insert into the_numbers values (2, 'company')")
|
|
(query-exec pgc "insert into the_numbers values (3, 'a crowd')"))))
|
|
ev))
|
|
|
|
#|
|
|
The fake eval is for eg connection examples
|
|
|#
|
|
|
|
(define fake-eval (make-base-eval))
|
|
(fake-eval '(begin (require racket/class)
|
|
(define connection% (class object% (super-new)))))
|
|
|
|
(define-syntax-rule (fake-examples [example result] ...)
|
|
(examples #:eval fake-eval (eval:alts example result) ...))
|