Powがイカスらしいので試してみる

rvmとかrailsとかの情報をごにょごにょ漁ってるとRailsの開発においてPowというものがクソ便利らしいので試してみる


Node.js+CoffeeScriptで書かれた「Pow」がカッコ良すぎる件:Rails Hub情報局:エンジニアライフ で概要とか紹介されてる。
それに影響された人 「Pow」MacでRails開発している人にお勧め環境 - BitArts もありがとうございます。


で、慣れてきたら [rails][pow] Powを使い倒す - mat_akiの日記を参考にイジリ倒す予定

じゃ、インスコ

$ curl get.pow.cx | sh

一発らしい


どれどれ

satsuki:~ hana-da$ curl get.pow.cx | sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6795  100  6795    0     0   5070      0  0:00:01  0:00:01 --:--:--  5101
*** Installing Pow 0.3.2...
*** Installing local configuration files...
/Users/hana-da/Library/LaunchAgents/cx.pow.powd.plist
*** Installing system configuration files as root...
Password:
/Library/LaunchDaemons/cx.pow.firewall.plist
/etc/resolver/dev
*** Starting the Pow server...
*** Performing self-test...
*** Installed

For troubleshooting instructions, please see the Pow wiki:
https://github.com/37signals/pow/wiki/Troubleshooting

To uninstall Pow, `curl get.pow.cx/uninstall.sh | sh`

入ったぽ。

アンインストール方法は To uninstall Pow, `curl get.pow.cx/uninstall.sh | sh` らしい。

早速試す

Pow経由で動かすアプリをPowに登録するには ~/.pow に rails root の sym linkを作成すればいいらしい。
$ ln -s myapp ~/.pow とか。ほんで myapp.dev をブラウザから叩けと。。。
サブドメインとかやりたいんなら
$ ln -s myapp ~/.pow/www.myapp
とかもできるっぽい。

んーて事はブラウザから http://localhost/ 叩くとどうなるんだろう??

あらステキ♪

ちなみに default という名前のsym linkを作ると、それがlocalhostで表示されるって
Pow User's Manual に書いてある夢を見た


あれ、まてよ。外にも公開されてんのかな???

[hana-da@kikyo(17:14:34) tmp]$ curl -I satsuki
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf8
X-Pow-Template: welcome
Connection: keep-alive

ほー外からも見えるんだ。


ま、いっか。

じゃーRailsでやってみる

Rails 3.0.10でやってみようかな

satsuki:Rails hana-da$ rvm 1.8.7@Rails_3.0.10
satsuki:Rails hana-da$ rails -v
Rails 3.0.10

切替え完了!
RVM最高!!


rails newする

satsuki:Rails hana-da$ rails new myapp
      create  
      create  README
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
:

からの

bundle install

satsuki:myapp hana-da$ bundle install
Fetching source index for http://rubygems.org/
Using rake (0.9.2) 
Using abstract (1.0.0) 
:
Using rails (3.0.10) 
Installing sqlite3 (1.3.4) with native extensions 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

なんか便利な気がする。


で、シンボリックリンクを~/.powに張って

satsuki:myapp hana-da$ cd ../
satsuki:Rails hana-da$ ln -s myapp ~/.pow/


ブラウザでmyapp.devをたたくと???

ステキな画面が。。。。ありがとうございました。

なんでよ?

satsuki:myapp hana-da$ ls -la ~/.pow/
total 8
drwxr-xr-x  3 hana-da  staff  102  8 19 17:30 .
drwxr-xr-x  5 hana-da  staff  170  8 19 16:43 ..
lrwxr-xr-x  1 hana-da  staff    5  8 19 17:30 myapp -> myapp
satsuki:myapp hana-da$ cd ~/.pow/myapp 
-bash: cd: /Users/hana-da/.pow/myapp: Too many levels of symbolic links

はい。私がアフォでした。unixの基本もわかってませんでした。ごめんなさい。


やりなおします。

satsuki:myapp hana-da$ rm ~/.pow/myapp 
satsuki:myapp hana-da$ ln -s ~/Documents/Development/Rails/myapp ~/.pow

で、$ open http://myapp.dev/ とかする。

ご乗車ありがとうございます!!!!


やー簡単簡単ワロスワロス

もうちょっと作りこんでみる

satsuki:myapp hana-da$ rails generate scaffold Blog title:string body:text
      invoke  active_record
      create    db/migrate/20110819084614_create_blogs.rb
:

とかやって


db:migrate

satsuki:myapp hana-da$ rake db:migrate
==  CreateBlogs: migrating ====================================================
-- create_table(:blogs)
   -> 0.0012s
==  CreateBlogs: migrated (0.0013s) ===========================================


あ、index.html消しとかなきゃな

satsuki:myapp hana-da$ rm public/index.html 


で、この辺で
$ open http://myapp.dev

マジポ?!!!


うーん。webrickだとどうなんだろう

satsuki:myapp hana-da$ rails server
=> Booting WEBrick
=> Rails 3.0.10 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-08-19 17:52:55] INFO  WEBrick 1.3.1
[2011-08-19 17:52:55] INFO  ruby 1.8.7 (2011-06-30) [i686-darwin11.0.0]
[2011-08-19 17:52:55] INFO  WEBrick::HTTPServer#start: pid=1928 port=3000

して


$ open http://localhost:3000

動いた。。。


はいはい。わかってます。
Pow User's Manual読みます。

Powはrvmを使った異なるバージョンのRuby配下で走るアプリをフルサポートしてだぜ!やっほい。すげーだろ

って書いてあります。


うごかねーYO!


と、おもったら

.rvmrc をアプリケーションrootに置くだけイケるよん
ちなみに .rvmrc の中身はrvm use 1.9.2 がいいんなら
rvm 1.9.2
とか書いとくといいよん。
あとrvm使ってない環境だったらPowはちゃんと.rvmrc無視するよん

って書いてあった。いたれるつくせる。


では早速おまじないを

satsuki:myapp hana-da$ echo 'rvm 1.8.7@Rails_3.0.10' > .rvmrc

して


$ open http://myapp.dev

感動した。


.rvmrcってRVMの機能なんだっけPowの機能なんだっけ。。。。
RVMのような気がするけど。。。今度調べとこ。

で、えーっと何だっけ

あ、ルーティングね。
$ vi config/routes.rb
って何だこれ。。。私、 Rails 1.2.3 から来たんですけど。意味不明なんですけど。ウケルー。
という程じゃないか。。。。


root :to => blogs#index


とか追加しとけばいいかな


$ open http://myapp.dev

おおお。キタキタおやじ


ブログを書いてみる

いい感じっす。


コードを書換えても自動的に再読み込みしてくれるみたいね

満足した。


ちなみに

satsuki:myapp hana-da$ cd ~/Library/Logs/Pow/
satsuki:Pow hana-da$ ls -la
total 16
drwxr-xr-x   4 hana-da  staff   136  8 19 17:47 .
drwx------+ 15 hana-da  staff   510  8 19 16:44 ..
-rw-r--r--   1 hana-da  staff  7959  8 19 18:12 access.log
drwxr-xr-x   3 hana-da  staff   102  8 19 17:47 apps

な感じで


access.log が

satsuki:Pow hana-da$ tail access.log 
[Fri, 19 Aug 2011 09:10:50 GMT] INFO [127.0.0.1] GET myapp.dev /javascripts/controls.js?1313742425
[Fri, 19 Aug 2011 09:10:50 GMT] INFO [127.0.0.1] GET myapp.dev /javascripts/application.js?1313742425
[Fri, 19 Aug 2011 09:12:42 GMT] INFO [127.0.0.1] GET myapp.dev /blogs
[Fri, 19 Aug 2011 09:12:42 GMT] INFO [127.0.0.1] GET myapp.dev /javascripts/effects.js?1313742425
[Fri, 19 Aug 2011 09:12:42 GMT] INFO [127.0.0.1] GET myapp.dev /javascripts/prototype.js?1313742425
[Fri, 19 Aug 2011 09:12:42 GMT] INFO [127.0.0.1] GET myapp.dev /stylesheets/scaffold.css?1313743574
[Fri, 19 Aug 2011 09:12:42 GMT] INFO [127.0.0.1] GET myapp.dev /javascripts/controls.js?1313742425
[Fri, 19 Aug 2011 09:12:42 GMT] INFO [127.0.0.1] GET myapp.dev /javascripts/dragdrop.js?1313742425
[Fri, 19 Aug 2011 09:12:42 GMT] INFO [127.0.0.1] GET myapp.dev /javascripts/rails.js?1313742425
[Fri, 19 Aug 2011 09:12:42 GMT] INFO [127.0.0.1] GET myapp.dev /javascripts/application.js?1313742425

な感じ。


さらに

satsuki:Pow hana-da$ cd apps/
satsuki:apps hana-da$ ls -la
total 8
drwxr-xr-x  3 hana-da  staff  102  8 19 17:47 .
drwxr-xr-x  4 hana-da  staff  136  8 19 17:47 ..
-rw-r--r--  1 hana-da  staff  183  8 19 18:03 myapp.log



satsuki:apps hana-da$ tail myapp.log 
[Fri, 19 Aug 2011 08:47:07 GMT] DEBUG nack worker 1917 spawned
[Fri, 19 Aug 2011 08:47:07 GMT] DEBUG nack worker exited
[Fri, 19 Aug 2011 09:03:08 GMT] DEBUG nack worker 2010 spawned

とかだった。




めでたし、めでたす。*1

*1:JSTにするにはどうすんだ?