Skip to content
ktym edited this page Feb 13, 2014 · 2 revisions

TogoStanza は、SPARQL 検索の結果を HTML に可視化するためのフレームワークで、もともと TogoGenome など医学・生物学のためのゲノム DB を構築するために作られましたが、かなりジェネリックなソフトウェアとなっています。

  • Ruby (Rack) を使っています
  • HTML のテンプレートには Handlebars を使っています
  • ドキュメントには Markdown を使っています
  • 出来上がったものは RubyGems のパッケージになります
  • GitHub のレポジトリと連動できます
  • Heroku にもデプロイできます

このレポジトリでは、

  • TogoStanza 開発環境とサーバ実装 (togostanza-gem)
  • TogoGenome などで使われているスタンザのコード

を公開しています。

TODO:

  • 作者やライセンスについて追記
  • TogoStanza サーバの機能 (/help など) について説明
  • TogoStanza の規約 (data-stanza-* などやクラス名などの制約) について説明

TogoStanza の作り方

% sudo gem install togostanza
% togostanza init my_stanza_server
% cd my_stanza_server
% togostanza stanza new my_new_stanza

このあと基本的には、

  • 引数を受け取り、SPARQL を実行し、結果を整理するコード部分 (stanza.rb)
  • 結果を受け取り、HTML にレンダリングする部分 (template.hbs)
  • 機能説明、引数やレンダリング例を表示するヘルプ部分 (help.md)
  • 作者やライセンスを記入し RubyGems を作るための部分 (gemspec)

上記のファイルを編集し、

% bundle exec rackup

を実行すると http://localhost:9292/stanza で動作確認できます。

GitHub を使った開発の実際

このレポジトリを用いて TogoStanza (ここでは NanoStanza の例で説明します)を開発する場合は、上記の togostanza init の代わりに

% git clone [email protected]:togostanza/nanostanza.git
% cd nanostanza
% git branch my_new_nano_stanza
% git checkout my_new_nano_stanza
% togostanza stanza new my_new_nano

ここでコードを開発し、動作確認して

% git status
% git add .
% git commit -m "Initial commit of my NanoStanza"
% git push origin my_new_nano_stanza

このあと https://github.com/togostanza/nanostanza から Compare & pull request のボタンでプルリクエストを送ります。 取り込まれたスタンザは、いまのところ http://nanostanza.herokuapp.com/stanza にデプロイされることになっています。 マージされたら、

% git checkout master
% git pull

で同期できます。master にマージされたブランチは消してしまって構いません。

% git branch -d my_new_nano_stanza (消えない時は -d を -D にすると強制消去できます)

次の修正や開発を始めるときは、再度ブランチを切ってから作業しましょう。

% git branch fix_my_nano_stanza
% git checkout fix_my_nano_stanza
Clone this wiki locally