mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-09-20 06:58:16 +03:00
verb: allow subscribing to events
This excludes, necessarily, events that don't let us emit moves. (+on-save, +on-peek)
This commit is contained in:
parent
4a6329eb09
commit
ac494a265e
@ -1,5 +1,7 @@
|
||||
:: Print what your agent is doing.
|
||||
::
|
||||
/- verb
|
||||
::
|
||||
|= [loud=? =agent:gall]
|
||||
=| bowl-print=_|
|
||||
^- agent:gall
|
||||
@ -12,7 +14,7 @@
|
||||
^- (quip card:agent:gall agent:gall)
|
||||
%- (print bowl "{<dap.bowl>}: on-init")
|
||||
=^ cards agent on-init:ag
|
||||
[cards this]
|
||||
[[(emit-event %on-init ~) cards] this]
|
||||
::
|
||||
++ on-save
|
||||
^- vase
|
||||
@ -24,7 +26,7 @@
|
||||
^- (quip card:agent:gall agent:gall)
|
||||
%- (print bowl "{<dap.bowl>}: on-load")
|
||||
=^ cards agent (on-load:ag old-state)
|
||||
[cards this]
|
||||
[[(emit-event %on-load ~) cards] this]
|
||||
::
|
||||
++ on-poke
|
||||
|= [=mark =vase]
|
||||
@ -36,21 +38,26 @@
|
||||
%bowl `this(bowl-print !bowl-print)
|
||||
==
|
||||
=^ cards agent (on-poke:ag mark vase)
|
||||
[cards this]
|
||||
[[(emit-event %on-poke mark) cards] this]
|
||||
::
|
||||
++ on-watch
|
||||
|= =path
|
||||
^- (quip card:agent:gall agent:gall)
|
||||
%- (print bowl "{<dap.bowl>}: on-watch on path {<path>}")
|
||||
=^ cards agent (on-watch:ag path)
|
||||
[cards this]
|
||||
=^ cards agent
|
||||
?: ?=([%verb %events ~] path)
|
||||
[~ agent]
|
||||
(on-watch:ag path)
|
||||
[[(emit-event %on-watch path) cards] this]
|
||||
::
|
||||
++ on-leave
|
||||
|= =path
|
||||
^- (quip card:agent:gall agent:gall)
|
||||
%- (print bowl "{<dap.bowl>}: on-leave on path {<path>}")
|
||||
?: ?=([%verb %event ~] path)
|
||||
[~ this]
|
||||
=^ cards agent (on-leave:ag path)
|
||||
[cards this]
|
||||
[[(emit-event %on-leave path) cards] this]
|
||||
::
|
||||
++ on-peek
|
||||
|= =path
|
||||
@ -63,21 +70,21 @@
|
||||
^- (quip card:agent:gall agent:gall)
|
||||
%- (print bowl "{<dap.bowl>}: on-agent on wire {<wire>}, {<-.sign>}")
|
||||
=^ cards agent (on-agent:ag wire sign)
|
||||
[cards this]
|
||||
[[(emit-event %on-agent wire -.sign) cards] this]
|
||||
::
|
||||
++ on-arvo
|
||||
|= [=wire =sign-arvo]
|
||||
^- (quip card:agent:gall agent:gall)
|
||||
%- (print bowl "{<dap.bowl>}: on-arvo on wire {<wire>}, {<[- +<]:sign-arvo>}")
|
||||
=^ cards agent (on-arvo:ag wire sign-arvo)
|
||||
[cards this]
|
||||
[[(emit-event %on-arvo wire [- +<]:sign-arvo) cards] this]
|
||||
::
|
||||
++ on-fail
|
||||
|= [=term =tang]
|
||||
^- (quip card:agent:gall agent:gall)
|
||||
%- (print bowl "{<dap.bowl>}: on-fail with term {<term>}")
|
||||
=^ cards agent (on-fail:ag term tang)
|
||||
[cards this]
|
||||
[[(emit-event %on-fail term) cards] this]
|
||||
--
|
||||
::
|
||||
++ print
|
||||
@ -89,4 +96,9 @@
|
||||
?. loud same
|
||||
%- (slog leaf+tape ~)
|
||||
same
|
||||
::
|
||||
++ emit-event
|
||||
|= =event:verb
|
||||
^- card:agent:gall
|
||||
[%give %fact ~[/verb/events] %verb-event !>(event)]
|
||||
--
|
||||
|
26
pkg/arvo/mar/verb/event.hoon
Normal file
26
pkg/arvo/mar/verb/event.hoon
Normal file
@ -0,0 +1,26 @@
|
||||
/- verb
|
||||
=, dejs:format
|
||||
|_ =event:verb
|
||||
++ grab
|
||||
|%
|
||||
++ noun event:verb
|
||||
--
|
||||
::
|
||||
++ grow
|
||||
|%
|
||||
++ noun event
|
||||
++ json
|
||||
=, enjs:format
|
||||
%+ frond -.event
|
||||
?- -.event
|
||||
%on-init ~
|
||||
%on-load ~
|
||||
%on-poke s+mark.event
|
||||
%on-watch (path path.event)
|
||||
%on-leave (path path.event)
|
||||
%on-agent (pairs 'wire'^(path wire.event) 'sign'^s+sign.event ~)
|
||||
%on-arvo (pairs 'wire'^(path wire.event) 'vane'^s+vane.event 'sign'^s+sign.event ~)
|
||||
%on-fail s+term.event
|
||||
==
|
||||
--
|
||||
--
|
12
pkg/arvo/sur/verb.hoon
Normal file
12
pkg/arvo/sur/verb.hoon
Normal file
@ -0,0 +1,12 @@
|
||||
|%
|
||||
+$ event
|
||||
$% [%on-init ~]
|
||||
[%on-load ~]
|
||||
[%on-poke =mark]
|
||||
[%on-watch =path]
|
||||
[%on-leave =path]
|
||||
[%on-agent =wire sign=term]
|
||||
[%on-arvo =wire vane=term sign=term]
|
||||
[%on-fail =term]
|
||||
==
|
||||
--
|
Loading…
Reference in New Issue
Block a user