めいふの備忘ログ

やったことを忘れないように書きこのしておくのです。

ikki fantasy の 闘技大会の技履歴表示ツールを Heroku で公開するまでの流れ。

 Ikki fantasy は Symalis 氏 作成の定期更新型のネットゲームでした。
 もう更新は終了してしまいましたが、とてもおもしろかったのです。

Symalis Project

 ikki fantasy ではチーム同士の闘技大会が開催されていたのですが、ワタクシめはその闘技大会のチーム技履歴閲覧アプリを作ったのです。なんのことだかさっぱりな人はikki fantasy を遊んでた人に聞いてみると何をやっているのかわかるかもですが、要するに対戦相手がそれまでに用いてきた技をテーブル形式で閲覧するためのアプリです。敵を知り己を知れば百戦危うからず、なのです。


 入力欄のEno.とはプレイヤーキャラクターの番号のことです。そのキャラクターが闘技大会に参加している場合は、自分と次の対戦相手の技履歴を表示します。


本日の封殺予報(闘技大会の技履歴表示ツール

https://young-ravine-2391.herokuapp.com/


 この記事は上記のアプリの公開までの流れを備忘録として残しておくものです。

1)技履歴表示ツールRuby コードを書く

 ikki fantasy の 結果の html ファイルから技履歴CSVファイルを生成し、それをパーティメンバーに回覧していたのです。

2)sinatra で web アプリを作って公開することにした

 CSVファイルを闘技パーティで回覧するのがめんどくさくなる。rails はめんどくさそうなのでsinatraを採用。ramazeはあまり流行してなさそうですし。


 sinatra のサンプルはこちらを参考にしました。ありがとうございます。

OpenShift QuickStart Git Repository for Sinatra
https://github.com/openshift/sinatra-example


Sinatra✕Herokuでいい感じの百人一首アプリを作るチュートリアル
【第1回】超ミニマム設定でSinatra✕Herokuのサンプルアプリをいい感じにする。
http://blog.notsobad.jp/post/59743873665/sinatra-heroku-1

3)Heroku で公開

 Heroku はWebアプリを公開するプラットフォームを提供してくれるクラウドサービスです。Herokuの 使い方についてはITアカデミーの「さあ、公開だ!「Heroku」と「Redis To Go」を組み合わせて、Webサービスを公開してみよう!」を参考にしました。ありがとうございます。

https://it.typeac.jp/article/show/11

 実際の手順はITアカデミーさんの手順をそのままなぞった感じです。

3-1)Heroku のアカウントをゲットする。公式サイトをCheck だ!
3-2)sinatraのアプリのあるディレクトリでheroku login

 e-mail と パスワードを入力します。

3-3)sinatra アプリのディレクトリでgit のリポジトリを作る

$ git init
$ git add
$ git commit -a -m "first commit"

3-4)Heroku サーバで何を起動させるかをProfile に書く

 ワタクシのアプリでは以下1行のファイルとなります。

web: bundle exec ruby bin/myapp.rb -p $PORT

 なお、ディレクトリの構成は、

bin/myapp.rb 他実行スクリプト
     /view (erbファイルを格納) 
     /public (cssやjsファイル等を)
lib/ (こちらにライブラリやユーティリティクラスを配置)
data/(ikki Fantasy 関連のデータ(Pstore で事前に保存したHashなど)を配置)
test/(第6回闘技大会専用のやっつけテストコード)
gogoikki.sh (ikki fantasy の更新結果から解析済みデータオブジェクトを作ったりします)
3-5)Gemfile を書きます

 hpricotだけversionに縛りがありますが大して意味はありません。

source 'https://rubygems.org'
gem "sinatra"
gem "sinatra-reloader"
gem "html-table"
gem "hpricot","~> 0.8.6"
3-6)bundle install で Gemifile.lockを作成します
3-7)sinatra アプリのディレクトリに作ったgitリポジトリにGemfile.lockなどの内容を反映させます

$ git add .
[f:id:meihuno_huno_san:20150729090617j:plain]

3-8)Heroku に デプロイします
$ heroku create
$ git push heroku master
$ heroku open
3-9)以降、アプリを変更する度にgit addとgit commit、git pushを繰り返します
$ git add .
$ git commit -a -m "add new data"
$ git push heroku master

 ikki fantasy の冒険が更新される度にデータをダウンロードしてオブジェクトを作り直し、git へのコミットとHerokuへのデプロイを繰り返すのです。来週もがんばろう。

(追記)github に技履歴ツールソースコードをアップ

 まー、Ikki Fantasy は終わっちゃったので、使う人はいないでしょうが、せっかくだし…

meihuno/ikki_br_analysis · GitHub