SocialCalc とは
あまり知られていませんが、SocialCalc というウェブ上で動くスプレッドシートがあります。
Google Spreadsheet を自分のサイトにインストールしたもの、みたいなイメージで考えるとよいかもしれません。
EtherCalc - リアルタイムコラボレーションできるWebベースの表計算
上では EtherCalc という名前になっていますが、これは一部でもソースコードを改変したら、名前を別にしなければならない、というライセンス上の制約からこうなっているみたいです。
なかなか使いやすいです。Microsoft Excel や Google Spreadsheet に比べれば、当然機能は劣りますが、基本的なワークシート関数も実装されていますし、基本的な用途にはとりあえず十分かと。
スプレッドシートの中身を簡単にシリアライズできるので、データベースやファイルに保存すれば、中身を永続化することもできます。
ただ、ネット上で情報が少なく、使いこなすのに少し手間がかかりました。
そこで、これを Ruby on Rails で使いやすくするため、Gem を作成してみました。
インストール方法
Gemfile で、
gem 'socialcalc-rails'
サンプル
普通に git clone
して、rails s
して http://localhost:3000
にアクセスしてください。スプレッドシート上のデータを保存することもできます。
技術的ポイント
あたりが私が工夫したところです。jQuery プラグインを作っています。放っておくと画面の全部のキーイベントを SocialCalc が奪ってしまい、ほかのコントロールを置けないので、そうならないようにしています。
所感
はじめて Gem を作ったので、いろいろ要領を得ていない部分があります。こうしたらもっといいよ、という点があれば教えてください。Gem を作るのは思ったよりずっと簡単でした。オープンソースは人々の協力によって支えられているのだ、ということがよくわかりました。ここに至るまでおもったより時間がかかってしまいましたが、とてもよい勉強になりました。