foo
Supponiamo di voler attendere il prossimo evento che ha un percorso con tre segmenti:
sync "/*/*/*"
Questo corrisponderà a qualsiasi evento Time State con esattamente tre segmenti, questo indipendentemente dal loro nome. Per esempio:
cue "/foo/bar/baz"cue "/foo/baz/quux"cue "/eggs/beans/toast"cue "/moog/synths/rule"Tuttavia, non corrisponderà a percorsi con meno o più segmenti. I seguenti non corrisponderanno:
cue "/foo/bar"cue "/foo/baz/quux/quaax"cue "/eggs"Ogni * significa qualsiasi contenuto. In questo modo possiamo abbinare i percorsi con un solo segmento con /* oppure quelli con cinque segmenti con /*/*/*/*/*
foo
cue "/foo/bar/baz"cue "/foo/baz/baz"cue "/foo/beans/baz"Tuttavia, non corrisponderebbe a quanto segue:
cue "/foo/flibble/baz"cue "/foo/abaz/baz"cue "/foo/beans/baz/eggs"foo
foo
cue "/foo/bar/baz"cue "/foo/bar/beans/baz"cue "/foo/baz"cue "/foo/a/b/c/d/e/f/baz"È possibile utilizzare il carattere ? per trovare una corrispondenza con un singolo carattere, ad esempio "/?oo/bar/baz" che corrisponderà:
cue "/foo/bar/baz"cue "/goo/bar/baz"cue "/too/bar/baz"cue "/woo/bar/baz"Se sai che un segmento potrebbe essere uno di un numero selezionato di parole, puoi usare l’operatore { and } per specificare una lista di scelte come "/foo/{bar,beans,eggs}/quux" che troverà corrispondenza solo con:
cue "/foo/bar/quux"cue "/foo/beans/quux"cue "/foo/eggs/quux"Infine, puoi cercare corrispondenze in una selezione di lettere se usi { and } per specificare una lista di scelte come ad esempio "/foo/[abc]ux/baz" che corrisponderà solo a:
cue "/foo/aux/baz"cue "/foo/bux/baz"cue "/foo/cux/baz"Puoi anche usare il carattere - per specificare un intervallo di lettere. Ad esempio "/foo/[a-e]ux/baz" che corrisponderà solo a:
cue "/foo/aux/baz"cue "/foo/bux/baz"cue "/foo/cux/baz"cue "/foo/dux/baz"cue "/foo/eux/baz"Nelle chiamate sync o get sei libero di combinare i parametri di confronto in qualunque ordine per intercettare qualunque evento Time State creato da cue o set. Diamo un’occhiata a un esempio inverosimile:
in_thread do
sync "/?oo/[a-z]*/**/ba*/{quux,quaax}/"
sample :loop_amen
end
sleep 1
cue "/foo/beans/a/b/c/d/e/bark/quux/"
Per i curiosi, queste regole di confronto sono basate sulle specifiche Open Sound Control, spiegate più in dettaglio qui: http://opensoundcontrol.org/spec-1_0