From 53857fdfee998019c90d8d8b1d126f2a0db17cc8 Mon Sep 17 00:00:00 2001 From: Slava Pestov <slava@slava-pestovs-macbook-pro.local> Date: Fri, 23 May 2008 22:32:39 -0500 Subject: [PATCH] Move farkup, code, inspector components to html.components --- extra/html/components/components-tests.factor | 27 +++++++++++++++++-- extra/html/components/components.factor | 23 +++++++++++++++- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/extra/html/components/components-tests.factor b/extra/html/components/components-tests.factor index 0bd5410a3b..d09f8b6b42 100644 --- a/extra/html/components/components-tests.factor +++ b/extra/html/components/components-tests.factor @@ -1,6 +1,7 @@ IN: html.components.tests -USING: html.components tools.test kernel io.streams.string -io.streams.null accessors ; +USING: tools.test kernel io.streams.string +io.streams.null accessors inspector html.streams +html.components ; [ ] [ blank-values ] unit-test @@ -145,3 +146,25 @@ M: link-test link-href drop "http://www.apple.com/foo&bar" ; [ "<html>arbitrary <b>markup</b> for the win!</html>" ] [ [ "html" html render ] with-string-writer ] unit-test + +[ ] [ "int x = 4;" "code" set-value ] unit-test + +[ ] [ "java" "mode" set-value ] unit-test + +[ "<span class='KEYWORD3'>int</span> x <span class='OPERATOR'>=</span> <span class='DIGIT'>4</span>;\n" ] [ + [ "code" <code> "mode" >>mode render ] with-string-writer +] unit-test + +[ ] [ "-foo\n-bar" "farkup" set-value ] unit-test + +[ "<ul><li>foo</li><li>bar</li></ul>" ] [ + [ "farkup" farkup render ] with-string-writer +] unit-test + +[ ] [ { 1 2 3 } "object" set-value ] unit-test + +[ t ] [ + [ "object" inspector render ] with-string-writer + [ "object" value [ describe ] with-html-stream ] with-string-writer + = +] unit-test diff --git a/extra/html/components/components.factor b/extra/html/components/components.factor index df1d1faa72..9c762eaa3a 100644 --- a/extra/html/components/components.factor +++ b/extra/html/components/components.factor @@ -4,7 +4,7 @@ USING: accessors kernel namespaces io math.parser assocs classes classes.tuple words arrays sequences splitting mirrors hashtables combinators continuations math strings fry locals calendar calendar.format xml.entities validators -html.elements ; +html.elements html.streams xmode.code2html farkup inspector ; IN: html.components SYMBOL: values @@ -144,6 +144,27 @@ M: link render* link-title object>string escape-string write </a> ; +! XMode code component +TUPLE: code mode ; + +: <code> ( -- code ) + code new ; + +M: code render* + [ string-lines ] [ drop ] [ mode>> value ] tri* htmlize-lines ; + +! Farkup component +SINGLETON: farkup + +M: farkup render* + 2drop string-lines "\n" join convert-farkup write ; + +! Inspector component +SINGLETON: inspector + +M: inspector render* + 2drop [ describe ] with-html-stream ; + ! HTML component SINGLETON: html