2013/03/22

Recent entries from same category

  1. Ruby の Array#<< は Array#push よりも速いか
  2. Ruby の a = a + 1 はなぜ undefined method '+' for nil:NilClass なのか
  3. Re: Ruby 製バッチ処理を省メモリ化した
  4. Crystal と CRuby でHTTPサーバのベンチマーク
  5. pure mruby な JSON パーサ書いた。

今朝送った pull-req がマージされ、mruby が xquote をパースする様になりました。
CRuby では当たり前の機能ですが、mruby が解釈出来る様になって嬉しい人もいるかと思います。
今回の修正により、`/bin/ls` もしくは %x(/bin/ls) といったコードが実行されると mruby は Kernel モジュールの ` というメソッドを実行します。ですので例えば
mattn/mruby-xquote - GitHub
https://github.com/mattn/mruby-xquote
この様に Kernel モジュールに ` メソッドを実装する mrbgems を使用する事で `ls /path/to/target`.split("\n").sort.each do |x|
  # x を使って処理を書く
end
この様な処理を書ける様になります。もちろん mrbgems なので「俺、そんな機能いらないから」って人は使わなければいいだけとなります。また今回は popen を使いましたが各 OS 毎に違った実装というのもあるかもしれません。各環境独自の ` にすり変えられる事になります。
なお、mruby-xquote については IIJ さんが作られている mruby-process (Windows版は私の mruby-process-win32) に吸収して頂ける様、お願いするつもりなので取り込まれた暁には無くなるモジュールとなる予定です。
だいぶ CRuby に追いついてきて、ちょっとしたバッチ処理を書くのであれば CRuby と遜色なくなってきました。
require はあるし、IO はあるし、ありとあらゆる物が mruby で動くようになってきました。(参考: RelatedProjects)

最初に mruby を知り触りだした頃はオモチャでしかありませんでしたが、最近になってぐっと実用範囲が広まってきましたね。
Posted at by | Edit