以前、Ruby + Heroku + Highchartsで食べたリンゴの割合をグラフ化してみました。
Ruby + Heroku + Highchartsで食べたリンゴの割合をグラフ化してみた - メモ的な思考的な
現在でも十分使えるのですが、手元の開発環境が
- WindowsのVirtualBoxのUbuntu VMが壊れ始めた
- 手動でVMを作ったので、当時の作成手順がわからない
- 今まで使っていたChef soloが終わったので、環境を構築する場合、新しい構成管理ツールに入門する必要あり
などの問題を抱えており、継続運用やアップデートするのは厳しい状態でした。
そんな中、去年の9月頃にHerokuのMonoでC#のNancyが動くということが分かりました。そこで、Ruby + Padrinoを C# + Nancyに移植してみました。
開発環境
- Windows7 x64
- .NET Framework 4.5
- PostgreSQL x64 9.3.5
- Ruby2.1.5 (RubyInstaller)
Heroku環境
グラフを表示するNancy(RingoTabetter)と、グラフのデータソースを返すAPIのNancy(RingoTabetterApi)の2つのアプリになります。
共通
- Heroku buildpacks
- heroku/heroku-buildpack-multi
- friism/heroku-buildpack-mono
- heroku/heroku-buildpack-ruby
- NuGet
RingoTabetter
食べたリンゴをグラフ化するアプリです。
- Heroku buildpacks
- friism/heroku-buildpack-mono
- Highcharts 4.0.4
- jQuery 2.1.3
RingoTabetterApi
こちらは、
の2つのプロジェクトで構成するアプリです。
Herokuのアドオンやbuildpack
- Heroku Postgres
- Heroku Scheduler
- Heroku buildpacks
- heroku/heroku-buildpack-multi
- friism/heroku-buildpack-mono
- heroku/heroku-buildpack-ruby
NuGetパッケージ
名前 | バージョン | 内容 |
---|---|---|
Npgsql | 2.2.3 | Heroku Postgres用のアダプタ |
CoreTweet | 0.4.0 | ツイートの収集 |
Dapper | 1.38 | Micro-ORM |
Dapper.FluentMap | 1.3.3 | Dapperでsnake_caseなDBをCamelCaseなクラスにマッピング |
FluentMigrator | 1.3.1.0 | DBのマイグレーション |
FluentMigrator.Tools | 1.3.1.0 | FluentMigratorをコマンドライン実行 |
YamlDotNet | 3.5.0 | リンゴ品種ファイルや、設定ファイルの読み込み(ローカルのみ) |
ツイートの収集には当初LinqToTwitterを考えていましたが、Herokuではうまく動作しなかったため、CoreTweetを使いました。日本語ドキュメントも結構充実していて、なかなか扱いやすいので、今後も利用していこうと考えています。
Ruby Gem
名前 | バージョン | 内容 |
---|---|---|
Albacore | 2.3.15 | HerokuでFluentMigratorを実行 |
また、NuGetやGemのの使い方については、去年いろいろとさわったりBlogエントリを書いたので、今回は省略します。
アプリイメージ
Rubyで作ったものと変更はありません。
現時点の様子
食べる期間が長いせいか、今回もシナノゴールドが目立っています。
なお、現時点では、旧アプリよりデータベースを移行していないため、直近2,000ツイートを解析した結果となっています。
ソースコード
GitHubに上げてあります。
自分が使っていく中で不便なことがあったり、データ移行がまだであったり、そもそもテストがなかったりしますので、順次改良していこうかと考えています。