early tangle working with latest git
parent
ab796422e5
commit
ce2412c4c8
|
@ -15,7 +15,7 @@ node "node"
|
||||||
{ "content" "content" TEXT }
|
{ "content" "content" TEXT }
|
||||||
} define-persistent
|
} define-persistent
|
||||||
|
|
||||||
: delete-node ( node -- ) delete-tuple ;
|
: delete-node ( node -- ) delete-tuples ;
|
||||||
: create-node ( content -- node ) f swap <node> dup insert-tuple ;
|
: create-node ( content -- node ) f swap <node> dup insert-tuple ;
|
||||||
: load-node ( id -- node ) f <node> select-tuple ;
|
: load-node ( id -- node ) f <node> select-tuple ;
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ TUPLE: arc id subject object relation ;
|
||||||
: <id-arc> ( id -- arc )
|
: <id-arc> ( id -- arc )
|
||||||
arc new swap >>id ;
|
arc new swap >>id ;
|
||||||
|
|
||||||
: delete-arc ( arc -- ) delete-tuple ;
|
: delete-arc ( arc -- ) delete-tuples ;
|
||||||
|
|
||||||
: create-arc ( subject object relation -- )
|
: create-arc ( subject object relation -- )
|
||||||
[ id>> ] 3apply <arc> insert-tuple ;
|
[ id>> ] 3apply <arc> insert-tuple ;
|
||||||
|
@ -76,7 +76,7 @@ TUPLE: arc id subject object relation ;
|
||||||
|
|
||||||
arc "arc"
|
arc "arc"
|
||||||
{
|
{
|
||||||
{ "id" "id" +native-id+ +autoincrement+ }
|
{ "id" "id" +db-assigned-id+ +autoincrement+ }
|
||||||
{ "relation" "relation" INTEGER +not-null+ }
|
{ "relation" "relation" INTEGER +not-null+ }
|
||||||
{ "subject" "subject" INTEGER +not-null+ }
|
{ "subject" "subject" INTEGER +not-null+ }
|
||||||
{ "object" "object" INTEGER +not-null+ }
|
{ "object" "object" INTEGER +not-null+ }
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
! Copyright (C) 2008 Alex Chapman
|
! Copyright (C) 2008 Alex Chapman
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors assocs db db.sqlite db.postgresql http.server http.server.actions io kernel namespaces semantic-db sequences strings ;
|
USING: accessors assocs db db.sqlite db.postgresql http http.server http.server.actions io kernel math.parser namespaces semantic-db sequences strings ;
|
||||||
IN: tangle
|
IN: tangle
|
||||||
|
|
||||||
GENERIC: render* ( content templater -- output )
|
GENERIC: render* ( content templater -- output )
|
||||||
|
@ -13,37 +13,21 @@ M: echo-template render* drop ;
|
||||||
! METHOD: render* { string echo-template } drop ;
|
! METHOD: render* { string echo-template } drop ;
|
||||||
M: object render render* write ;
|
M: object render render* write ;
|
||||||
|
|
||||||
TUPLE: tangle db templater ;
|
TUPLE: tangle db seq templater ;
|
||||||
C: <tangle> tangle
|
C: <tangle> tangle
|
||||||
|
|
||||||
TUPLE: sqlite-tangle ;
|
|
||||||
TUPLE: postgres-tangle ;
|
|
||||||
|
|
||||||
: make-tangle ( db templater type -- tangle )
|
|
||||||
new [ <tangle> ] dip tuck set-delegate ;
|
|
||||||
|
|
||||||
: <sqlite-tangle> ( db templater -- tangle ) sqlite-tangle make-tangle ;
|
|
||||||
: <postgres-tangle> ( db templater -- tangle ) postgres-tangle make-tangle ;
|
|
||||||
|
|
||||||
: with-tangle ( tangle quot -- )
|
: with-tangle ( tangle quot -- )
|
||||||
[ db>> ] dip with-db ;
|
[ [ db>> ] [ seq>> ] bi ] dip with-db ;
|
||||||
|
|
||||||
: init-db ( tangle -- tangle )
|
|
||||||
dup [ init-semantic-db ] with-tangle ;
|
|
||||||
|
|
||||||
GENERIC# new-db 1 ( tangle obj -- tangle )
|
|
||||||
M: sqlite-tangle new-db ( tangle filename -- tangle )
|
|
||||||
sqlite-db >>db init-db ;
|
|
||||||
M: postgres-tangle new-db ( tangle args -- tangle )
|
|
||||||
postgresql-db >>db init-db ;
|
|
||||||
|
|
||||||
TUPLE: node-responder tangle ;
|
TUPLE: node-responder tangle ;
|
||||||
C: <node-responder> node-responder
|
C: <node-responder> node-responder
|
||||||
|
|
||||||
|
: node-response ( responder id -- responder )
|
||||||
|
load-node [ node-content ] [ "Unknown node" ] if* >>body ;
|
||||||
|
|
||||||
M: node-responder call-responder* ( path responder -- response )
|
M: node-responder call-responder* ( path responder -- response )
|
||||||
"text/plain" <content> nip params get
|
dup tangle>> [
|
||||||
[ "node-id" swap at* [ >>body ] [ drop ] if ] when* nip ;
|
"text/plain" <content> nip request get request-params
|
||||||
|
[ "node-id" swap at* [ string>number node-response ] [ drop ] if ] when* nip
|
||||||
: test-tangle ( -- )
|
] with-tangle ;
|
||||||
f f <sqlite-tangle> <node-responder> main-responder set ;
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue