2010-09-20
FileUtilsを使おう.
Rakeを書く時にはFileUtilsを使おう.
ポータビリティのためもあるし, 以下のコードがsh "cd"の行で落ちるからだ.
task :a do FileUtils.cd("Dropbox") sh "ls" # OK # sh "cd" # NOT OK p FileUtils.pwd end task :b => ["a"] do p FileUtils.pwd end
このコードの狙いは2つある.
- :aでcdした情報が, :bの方にも引き継がれてるか => 引き継がれてる.
- FileUtils.cdとsh "cd"はどう違うのか? => FileUtilsの方はrubyのプロセスの中で仮想的にディレクトリを動かすが, sh "cd"の方はプロセスの位置情報をいじろうとするのでエラーになる. 端的にいうと, 親プロセスのPWDを子プロセス(ruby実行)から変更しようとしたのでエラったのだと説明可能. それはシェルスクリプトでも不可能である.
基本的に, FileUtilsを優先すべきだと思う. つうか, 同等のコマンドであればシェルを直接叩くよりRubyの関数を叩いた方がいい. たぶん, mvとかmkdirとかは出来てしまうが, これは混乱の元であるように思うし, そんなコマンドはWindowsにはない. クソWindowsはUNIXではないからだ.
RubyはFile, FileUtils, FileList(Rake), Stringと正規表現, Array, Hashあたりをなんとなく使えば, Raekで必要な処理は大体書けるし, ディベロップメントの補助ツールとしては十分だと思う. 非常に面白い言語ですね.
トラックバック - http://d.hatena.ne.jp/akiradeveloper/20100920/1284961340
リンク元
- 59 http://pipes.yahoo.com/pipes/pipe.info?_id=tDfBdGWF3RGl9XNm1L3fcQ
- 2 http://hyorohyon.appspot.com/bookmark/
- 2 http://www.buildsolarpanelreviews.com
- 2 http://www.google.co.jp/m?ie=Shift_JIS&q=洗脳+キャラ
- 2 http://www.google.co.jp/reader/view/
- 2 http://www.google.com/search?lr=lang_ja&hl=ja&q=akiradeveloper
- 1 http://a.hatena.ne.jp/Ddtana/
- 1 http://b.hatena.ne.jp/kazuva/
- 1 http://blogsearch.google.co.jp/blogsearch?hl=ja&ie=UTF-8&q=ruby&btnG=ブログ検索&lr=lang_ja
- 1 http://d.hatena.ne.jp/diarylist?of=100&mode=rss&type=public
おとなり日記
- 2010-09-19 ゆうきのブログ 3/17 17%
- 2010-09-19 vivi0321xingの日記 4/70 5%