Spreadsheet
Esse projeto é um exercício sugerido pelo Casssiano, que consiste na implementação em uma planilha de cálculos.
Por ora, o projeto está em fase alpha, e não trata quase nenhum caso de excessão.
Implementação
Foram utilizados vários conceitos descritos no paper Deprecating the Observer Pattern para implementação, já que cada célula representa um Signal
descrito no paper.
Para o parsing das fórmulas da planilha, foi desenvolvido um simples parser com o Treetop.
A UI (ainda bastante simplista) foi produzida com a ajuda da biblioteca Curses.
Demo
Para rodar o demo, primeiro instale as dependências com:
$ bundle install
E depois execute
$ ./demo.rb