2009-03-15 19:19:29 -04:00
|
|
|
! Copyright (c) 2008, 2009 Slava Pestov
|
2008-04-15 07:10:08 -04:00
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2009-03-16 21:11:36 -04:00
|
|
|
USING: accessors kernel math.order namespaces combinators.short-circuit
|
2008-06-15 05:56:35 -04:00
|
|
|
html.forms
|
|
|
|
html.templates
|
|
|
|
html.templates.chloe
|
2008-06-02 16:00:03 -04:00
|
|
|
locals
|
|
|
|
http.server
|
2008-11-24 21:26:11 -05:00
|
|
|
http.server.filters
|
|
|
|
furnace.utilities ;
|
2008-06-01 18:22:39 -04:00
|
|
|
IN: furnace.boilerplate
|
2008-04-15 07:10:08 -04:00
|
|
|
|
2008-06-15 05:56:35 -04:00
|
|
|
TUPLE: boilerplate < filter-responder template init ;
|
2008-04-15 07:10:08 -04:00
|
|
|
|
2008-06-15 05:56:35 -04:00
|
|
|
: <boilerplate> ( responder -- boilerplate )
|
|
|
|
boilerplate new
|
|
|
|
swap >>responder
|
|
|
|
[ ] >>init ;
|
2008-04-15 07:10:08 -04:00
|
|
|
|
2008-06-18 01:37:04 -04:00
|
|
|
: wrap-boilerplate? ( response -- ? )
|
2008-09-29 20:43:45 -04:00
|
|
|
{ [ code>> 200 = ] [ content-type>> "text/html" = ] } 1&& ;
|
2008-06-18 01:37:04 -04:00
|
|
|
|
2011-10-13 19:44:30 -04:00
|
|
|
M:: boilerplate call-responder* ( path responder -- response )
|
2008-06-15 05:56:35 -04:00
|
|
|
begin-form
|
2008-05-01 17:24:50 -04:00
|
|
|
path responder call-next-method
|
2009-03-15 19:19:29 -04:00
|
|
|
responder init>> call( -- )
|
2008-09-29 20:43:45 -04:00
|
|
|
dup wrap-boilerplate? [
|
2008-05-01 17:24:50 -04:00
|
|
|
clone [| body |
|
2008-06-01 18:22:39 -04:00
|
|
|
[
|
|
|
|
body
|
|
|
|
responder template>> resolve-template-path <chloe>
|
|
|
|
with-boilerplate
|
|
|
|
]
|
2008-05-01 17:24:50 -04:00
|
|
|
] change-body
|
|
|
|
] when ;
|