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.

Obligatory gif

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