! Copyright (C) 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: furnace.actions furnace.redirection http.server.dispatchers html.forms validators urls accessors math ; IN: webapps.calculator TUPLE: calculator < dispatcher ; : ( -- action ) [ { { "z" [ [ v-number ] v-optional ] } } validate-params ] >>init { calculator "calculator" } >>template [ { { "x" [ v-number ] } { "y" [ v-number ] } } validate-params URL" $calculator" "x" value "y" value + "z" set-query-param ] >>submit ; : ( -- responder ) calculator new-dispatcher >>default ; ! Deployment example USING: db.sqlite furnace.alloy namespaces http.server ; : calculator-db ( -- params db ) "counter.db" sqlite-db ; : run-calculator ( -- ) calculator-db main-responder set-global 8080 httpd ; MAIN: run-calculator