.. _intro: ************ Introduzione ************ Programma per creare o aggiornare una presentazione *PowerPoint* con dati provenienti da un database *Access*. Uno **script** di *DB2pt* è un file di testo con estensione ``.d2p``. Gli script seguono le regole sintattiche del linguaggio `Ruby `_ [#]_. * I comandi sono **case sensitive**, quindi vanno scritti con i corretti caratteri maiuscoli e minuscoli. [#]_ * La **virgola** separa gli argomenti di un metodo o funzione. * Un'istruzione può essere mandata a capo purchè sia chiaro dal contesto che l'istruzione non è terminata. In genere viene mandata a capo dopo una virgola. Una stringa di testo non può essere semplicemente interrotta e mandata a capo, bisogna dividere la stringa e concatenarla con il carattere ``+``. * Due numeri uniti da due punti ``..`` rappresentano un **range**, una sequenza numerica: ``1..10``. * I caratteri preceduti da due punti ``:`` sono chiamati **simboli** (``:barclu``). Ciascun simbolo viene istanziato una volta sola indipendentemente dal numero di chiamate. In DB2ppt li usiamo soprattutto per i nomi di parametri e per i nomi di variabili. * Le **parentesi tonde** racchiudono gli argomenti di un metodo o funzione. Se il contesto non è ambiguo o se non si concatena direttamente un metodo sulla stessa funzione, si possono tralasciare. * Le **parentesi quadre** racchiudono gli **array** (vettori). * L'operatore ``=>`` viene usato per associare la chiave di un **hash** (array associativo) al suo valore. * All'interno di una stringa, ``#{nome_variabile}`` inserisce il contenuto della variabile nel testo. * All'interno di una stringa ``\n`` manda a capo il testo seguente. * A un metodo o funzione, oltre agli argomenti può essere passato un **blocco**. Un blocco è appunto uno spezzone di codice (una *funzione anonima*) che viene eseguito nel contesto definito dall'oggetto a cui viene passato il blocco. In DB2ppt la definizione di una tabella o di un grafico utilizzano un blocco. Un blocco utilizza la sintassi ``do ... end``. [#]_ Lo stesso blocco può avere degli argomenti: ``do |args| ... end``. .. rubric:: Note .. [#] Lo script è effettivamente codice Ruby che viene interpretato da ``ruby.exe``. .. [#] Comunque, al momento, tutti i comandi sono in minuscolo. .. [#] I blocchi in Ruby possono utilizzare anche la sintassi ``{ |args| ... }``. Per convenzione questa sintassi è utilizzata quando il blocco è di una sola riga.