ここのところ僕がRubyやらRailsやらを勉強しているのは、何を隠そうひとえにHerokuで何かを動かしてみたいからだったりする。
Heroku | Cloud Application Platform
Herokuとはなんぞや?という方のために説明すると、無料から始められるウェブサービスの公開のためのプラットフォームで、元々はRails用だったのだけど今ではいろんな言語を動かせたりする。
↓このへんが詳しい。
FAQ:Herokuってなに?メリットは? - builder
- 作者: 掌田津耶乃,相澤歩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2013/03/15
- メディア: 大型本
- クリック: 7回
- この商品を含むブログ (1件) を見る
- 作者: Neil Middleton,Richard Schneeman
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2013/09/22
- メディア: ペーパーバック
- クリック: 2回
- この商品を含むブログを見る
そんなわけで乞食エンジニア的には「無料」という部分にどうしようもなく惹かれはしたものの、「さてどうすれば使えるのかな?」と探してみると意外と初歩向けな資料が少なく(もしくは古く)、マニアックな方法論は結構あるけど「とりあえず動かしてみたい!」人向けなのが無かったのでこの記事を書いてみた。
環境設定
とは言えまじめに「〜をインストールする」みたいな所から始めるのはかったるいので↓を参照のこと。
http://ppworks.hatenablog.jp/entry/2012/03/04/141951
ざっくり要素だけ抜き出すと
- Herokuのアカウント作る(あたりまえ
- Ruby使えるようにする
- git使えるようにしておく
そんでもってSSHの鍵やらなんやらを設定してターミナルからherokuにログインできればOK。
上の記事がなかなか親切で、僕もgitもRubyもよくわかない状態でもherokuへデプロイしてRailsが動くところまではもっていけたんだけど、フレームワーク使うほど大きいものを作る気もなかったし、動かすために具体的に何が必須で何が要らないのか正直よく理解できていなかった。
Sinatra良いね!
さて、先にも書いたが「何がしたいでもないけどとりあえず動かしたい」程度のテンションだとRailsはちょっと大げさすぎる。
色々覚えるべきことが多いってのもあるし、無料の貧弱な環境で動かくのはちょっとしんどい。
そんな中で見つけたのがSinatraというミニマムなフレームワーク。
前の記事で書いたPerlのMojulicious::Liteみたいに1ファイルから使用できる。
(どっちかっていうとSinatraの方が先にあって作られたらしいけど。CakePHPといいMojoliciousといい、僕はポロロッカ現象が多い。)
Ruby関係の書籍やサイトを探してもRailsばっかりなのだけど、Rubyがある程度書けるようになった後で何かちょっとしたことやりたいだけならSinatraの方が気楽で良いと思う。
- 作者: Alan Harris,Konstantin Haase
- 出版社/メーカー: O'Reilly Media
- 発売日: 2011/11/21
- メディア: Kindle版
- この商品を含むブログを見る
1 # -*- coding: utf-8 -*- 2 require 'rubygems' 3 require 'sinatra' 4 5 get '/' do 6 erb :index 7 end
5〜7行目が"/"がリクエストされた時の動きなので、そこにやりたい処理を書けば良い。
6行目は同じ階層のviewsというディレクトリの中にある「index.erb」というテンプレートを呼ぶ意味。
ちなみにcssやjsなどは同階層にpublicというディレクトリを作ってそこに入れておけば良い。
詳しくは↓
Sinatra: README (Japanese)
Sinatraで作ったサービスをHerokuで動かすには
さて本題。
とりあえずSinatraでそれっぽいものが作れるようになったら
1.作業ディレクトリを作成して「heroku create アプリ名」とコマンドを叩く。
ちなみにアプリ名は後からでも変更がききそう。
2.作業ディレクトリを作成したSinatraのコードを「app.rb」とでも名前を付けてを放り込む。
3.「Gemfile」というファイルを作成して↓みたいに使ってるgemを書き込んどく
1 source :rubygems 2 gem 'sinatra'
4.「config.ru」という駆動用の設定ファイルを作成する。(これを最初に知りたかった)
1 require './app' 2 run Sinatra::Application
記事によってはここのrequreが単に"app"として載っているものもあるけど、現バージョンだと相対パスで"./app"じゃないとダメらしい。
ちょっとした落とし穴。
5.一応「bundle install」と叩いて必要なGemを入れておく
6.「git add .」「git commit -m コメント」ってな具合にコミットして・・・
7.「git push heroku master」で出来上がり
あとは「heroku open」でページを開いてみたり、「heroku logs」でログを眺めてみたり、「heroku maintenance:on/off」でメンテナンスモードにしてみたりすれば良い。
知ってしまえば何のことはない話なのだが、Herokuってつまりはジオシティーズ的な共通のサーバのディレクトリ貸しではなく、あくまでウェブサービスを動かすプラットフォームを提供しているわけだから設定ファイルとかが必要なんですよ、ということをおさえておきたい。
そんなわけでTwitterAPIを使ってみたくて作ったのが↓
意識スカウター
そのうちTwitterAPIについても書きたいと思う。
あとAmazonAPIを使った実用的なものも書いてみたいところ。
- 作者: 3Dogs
- 出版社/メーカー: 秀和システム
- 発売日: 2012/03
- メディア: 単行本
- クリック: 2回
- この商品を含むブログを見る