Heroku で 簡単に Sinatra を動かすための2つの注意点

最近 Heroku が良いという話を良く耳にします。

Herokuが何かという話は割愛。ググれば沢山あります。

Sinatraを使って簡単Webアプリ作成にチュートリアルは公式に詳しいです。

Getting Started with Ruby on Heroku/Cedar

 

しかし、なんだか色々ファイル作ったりちょっとめんどくさい。

そこで、Sinatraがgithubで公開しているテンプレートを使うと簡単早い!

 (参考: Heroku を利用して新規 Sinatra アプリを5分くらいで公開する

が、落とし穴が。このテンプレは不完全です。動かすためには2つばかりの修正が必要。

 

1.Gemfile を用意する

Gemfile というものに、Heroku で使用する依存ライブラリを書いてやる必要があります。

 vi とかで、下記のファイルを作成します。

source :rubygems
gem 'sinatra'

 

2. config.ru の編集

 require 指定がこのままだとファイルから読み込んでくれません。“./” を付けてやります。

require './heroku-sinatra-app'

 

これらのファイルをコミットして、pushしてやればOKです。 

$ git commit -a 
... コメントいれる ...
$ git push heroku master

 

http://(アプリ名).heroku.com/ へアクセスして、

Congradulations! You're running a Sinatra application on Heroku!

のように表示されればOK!

 

CotEditor で YAML 形式に対応するシンタックススタイルファイル作りました

Macでテキストファイルを書くときは専ら CotEditor を使っています。

デフォルトではYAMLファイルのシンタックススタイルに対応してないので、やや使いにくい。

こちら で作られていたようですがリンク先がありません。。。

勢いで作ってgithubに載せました。

https://github.com/dsuket/yaml-coteditor

アウトラインメニューにも対応してます。

インストール

上記の yaml.plist をダウンロード。

CotEditot [設定] → [シンタックス]  を開いて、シンタックスタイルから読み込みでファイルを読み込んでください。

静的サイト生成ツール Jekyll を使って、bootstrapサイトを作ってみたよ

とあるサイトの更新をしてるのですが、未だ生HTMLファイル編集だったんですね。いい加減 生HTML管理も限界。WordPressとかでもいいんだけど、MySQLとか入れるのめんどくさいし、テーマをカスタマイズするのもちょっと手間だ。なんといっても php 書きたくないw

ということで色々探していたら jekyll というものが良さそうだったので試しに使ってみることに。

jekyll とは、rubyで書かれた静的サイトジェネレーターです。ジキルと読みます。ジキル博士のあれですね。githubのユーザーページなんかにも使われているそうです。

特徴

  • Liquid というテンプレートエンジンを使ってる。
  • MarkDown 形式でかける。(デフォルトでは maruku を使用。)
  • WEBrickを使ったWebサーバも内蔵して、書いた物をすぐ確認することも出来る。

githubページを利用するなら連携がもっと便利な octopress というのもあるけど、今回は 別の静的サイトの作成なので、この jekyll で十分。 

インストール

ruby 1.9.1以上が必要です。rubygemsも入れて下さい。
rubyも最近は rvm なんてもので簡単にインストールできるんですねぇ。
rubyのインストールについては簡単に。

rvm と ruby のインストール

$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
$ source ~/.bash_profile

 rvmでrubyのインストール

$ rvm install 1.9.3

新しいrubyを使うように設定

$ rvm use ruby-1.9.3-p125

 

jekyllのインストール

gemでインストールするだけ。以上。簡単ですね。

$ sudo gem install jekyll

詳しくは下記参照。

https://github.com/mojombo/jekyll/wiki/install

 

Twitter Bootstrap を jekyll で使えるようにしたテンプレートが既にあります。 そのままずばり Jekyll-Bootstrap。 略称 JB。Jail Breakを連想するなんだかダークな感じが何ともですw

こいつを github から clone すれば直ぐに使えます。 

$ git clone https://github.com/plusjade/jekyll-bootstrap.git

生成

テンプレートからhtmlを生成してみます。テンプレートのあるディレクトリへ行って、jekyll コマンドを使用します。上記のcloneしたディレクトリでやるのが早い。なお、ディレクトリ移動しなくてもオプションでパスを与えることも出来ます。

$ jekyll 

 これだけでOK。設定(_config.yml)で auto: true になってると、プロセスはそのままで、ファイルの更新を検知する度に自動生成します。楽ちん。

さらに、サーバーモードで動かすとなお楽です。bootstrap(正確にはless)などの最近のframeworkはスクリプトやスタイルシートを動的にajaxなんかで読み込むことも多いため、ローカルファイルでは動かなかったりするので、非常に助かります。サーバーモードで動かすには以下のオプションをつける。

$ jekyll --server

デフォルトでは 4000番ポートで起動します。

コマンドの詳しい説明は Usage で。なお、設定は Configuration を参考。(だんだん手抜きになってきた。)

次回は設定値や、書き方について書ければと思っています。あと、実はこの JB が対応している Bootstapのバージョンは低い。2.0 に対応させるための変更なんかについても書ければ。

 

はてなブログはじめました

今さらながらはてなブログを始めて見ました。

はてダで「webとかmacとかやってみようか」をやってましたが、心機一転ブログで再出発します。

色々あってアカウントも整理。

今度はちょっとはマメに更新できたらなー、と思ってます。

ということで、初エントリーでした。