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/
なんでよ?
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