#codingmonamour

DuckQuack

DuckQuack è un semplice ambiente per sperimentare in Ruby.
È scritto in JRuby per consentire una maggior portabilità grazie alla piattaforma Java su cui viene eseguito.
L'interfaccia usa le JavaFx come libreria di appoggio.

È scaricabile liberamente da: DuckQuack mentre il codice sorgente è consultabile oltre che nel pacchetto scaricato anche online su Github.

l'archivio zip contiene uno script di shell per Gnu/Linux ed un eseguibile per Microsoft Windows(tm) (non testato).

L'ambiente è diviso in tre parti: il codice, un canvas aperto su cui si può immediatamente disegnare, un'area di output testuale.

immagine1

Avvio

Nella cartella bin ci sono due file: initialize ed jarify. Il primo scarica JRuby complete ed installa le librerie Ruby necessarie (gemme) mentre il secondo serve per impacchettare l'applicazione in un unico file jar che comprende tutto quanto per funzionare: interprete, gemme e file della applicazione.
Il file DuckQuack.jar è generato nella radice del progetto.

Quindi la sequenza prima di partire è:

Dopodiché si può lanciare l'applicazione con java -jar DuckQuack.jar od usare l'eseguibile Windows(tm) DuckQuack.exe.

Sono disponibili dei parametri da linea di comando --load [file], --run [file] e --hide.
Il parametro --hide nasconde l'ambiente alla esecuzione automatica di un file (utile se si creano finestre esterne nel sorgente per simulare una applicazione reale).

immagine1

Configurazione

Nel file config/config.yml sono presenti delle impostazioni di avvio:

:title => 'DuckQuack',
:width => 960,
:height => 700,
:size => 'window',
:lang => 'en',
:tab_chars => '  ',
:database => 'duck_quack',
:highlighting => { :async => false, :time => 300 },
:code_runner  => { :async => true, :type => :task }, #or :type => :later or :type => :sync

Queste sono quelle predefinite.

Codice

Il codice supportato è Ruby che viene eseguito e valutato tramite il pulsante avvia. In caso di errori:

la linea viene evidenziata e il backtrace è presente nell'area di output.

Il sistema prevede una certa personalizzazione che va dalla colorazione della sintassi attraverso due file:

Nella stessa cartella un file code.yml permette di specificare una serie di righe predefinite da eseguire insieme al codice. Utile per eventuali require o import da usare in maniera predefinita.
Si possono specificare anche dei blocchi di codice da inserire tramite la pressione del tasto Alt insieme ad una lettera o Alt+Shift ed una lettera, le definizioni sono nel file snippets.yml. I caratteri sono autocompletabili tramite il file completes.yml, utile per le parentesi per esempio: inserendo una parentesi ( verrà inserito () con il cursore posizionato al centro.

immagine2

Oltre alla personalizzazione del linguaggio e dell'editor tramite i file di cui sopra, nella cartella ./config/locale/it c'è il file (locale.yml) per la traduzione di alcune parte dell'interfaccia, dei metodi da eseguire ed un mapping di sostituzioni in linea prima della esecuzione. In questo modo si dovrebbe poter personalizzare il codice per le varie eveniente senza troppa difficoltà.

Il sistema è espandibile in alcuni modi.

Per il canvas sono presenti tutte le primitive grafiche per disegnare e sono quindi immediatamente utilizzabili (fare riferimenti alla documentazione JavaFx della classe GraphicsContext.

Sono presenti alcune primitive per la creazione di interfacce grafiche all'interno del canvas e finestre esterne, nonché metodi utili:

La documentazione rdoc generata è nella cartella doc.
Ogni nome di funzione aggiunta nei vari modi è localizzabile nel suo nome con i meccanismi accennati prima.
Ovviamente tutto questo salvo bachi.

immagine2

Licenza