sinatraでtwitterを使ったwebアプリを作ってみようと思ってて、そのときCONSUMERKEYをファイルから読んでセットしようと考えてたんだけど、configureで読んでもいいんだけど読み込み失敗したときhaltも利かないんでエラーにするのめんどそうだしどうにかできないか考えてた。
いろいろぐぐってみるとENVにセットして読むというやり方があって、これはいいと思ったんだけどENVって勝手に追加したり変更したりしていいもんかどうかわからなかった。
リファレンス読むと要はHashみたいなので好き勝手できるっぽい。
あとは環境変数なんで、そこにセットしたら同じサーバで動かしてるサービスとかあったら読めるのはどうなのと思ったんだけど、自分のサーバで動かしてるなら別にいい気もするし、他ならどうなんだろうと思っていろいろぐぐってみると
HerokuでWebアプリ開発を始めるなら知っておきたいこと (5)環境変数ENV - アインシュタインの電話番号☎
Herokuでは、Herokuアプリ単位で環境変数を設定することが可能です。コマンドプロンプトからherokuコマンドで設定することができ、その値をRubyコード内からは、ENV['HOGEHOGE'] というハッシュ(連想配列)で参照することができます。この値はHerokuアプリ(サーバー)側に保存されます。
Herokuだとアプリ単位でいけるってことは問題ないっぽい。
というわけでやってみようと思ったんだけど、Rackで動かすとき環境変数セットするときは
- O AAA=aaa
みたいな感じにしなくちゃならないみたいなんでめんどすぎだろ...って思ってぐぐったらすごいのがあった。
Sinatraの基本的な使い方:ファイル構成と起動方法 #Ruby #Sinatra - Qiita
Twitterで認証する方法(Batch) - ヤマモトヘロクコム
foremanっていうのを使うと.envってファイルに書き込むだけで自動でENVにセットしてくれるらしい。すばらしい。
foremanを動かすにはProcfileを書かなくちゃならないっぽい。
foreman について - 君の瞳はまるでルビー - Ruby 関連まとめサイト
勉強になる。