LoginSignup
5

More than 5 years have passed since last update.

socialcalc-rails gem を作ってみた

Posted at

SocialCalc とは

あまり知られていませんが、SocialCalc というウェブ上で動くスプレッドシートがあります。
Google Spreadsheet を自分のサイトにインストールしたもの、みたいなイメージで考えるとよいかもしれません。

EtherCalc - リアルタイムコラボレーションできるWebベースの表計算

EtherCalc

上では EtherCalc という名前になっていますが、これは一部でもソースコードを改変したら、名前を別にしなければならない、というライセンス上の制約からこうなっているみたいです。

なかなか使いやすいです。Microsoft Excel や Google Spreadsheet に比べれば、当然機能は劣りますが、基本的なワークシート関数も実装されていますし、基本的な用途にはとりあえず十分かと。

スプレッドシートの中身を簡単にシリアライズできるので、データベースやファイルに保存すれば、中身を永続化することもできます。

ただ、ネット上で情報が少なく、使いこなすのに少し手間がかかりました。
そこで、これを Ruby on Rails で使いやすくするため、Gem を作成してみました。

インストール方法

Gemfile で、

gem 'socialcalc-rails'

サンプル

image

普通に git clone して、rails s して http://localhost:3000 にアクセスしてください。スプレッドシート上のデータを保存することもできます。

技術的ポイント

あたりが私が工夫したところです。jQuery プラグインを作っています。放っておくと画面の全部のキーイベントを SocialCalc が奪ってしまい、ほかのコントロールを置けないので、そうならないようにしています。

所感

はじめて Gem を作ったので、いろいろ要領を得ていない部分があります。こうしたらもっといいよ、という点があれば教えてください。Gem を作るのは思ったよりずっと簡単でした。オープンソースは人々の協力によって支えられているのだ、ということがよくわかりました。ここに至るまでおもったより時間がかかってしまいましたが、とてもよい勉強になりました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5