Shibuya.rbで発表してきた #shibuyarb #rubymotionjp
以前、書いた記事(最近投げたpull requestとかソーシャルコーディングとかリファクタリング )の反響が若干あったので、RubyMotionTokyo meetupの宣伝も兼ねて発表してきた。
ibをリファクタリングして、tsort依存関係解決の機能を導入したという話。
tsortの使い方の話は一切してなかったのですけど、公式ドキュメントの通り使うとすげー簡単に使えます。
http://doc.ruby-lang.org/ja/2.0.0/class/TSort.html
require 'tsort' class Hash include TSort alias tsort_each_node each_key def tsort_each_child(node, &block) fetch(node).each(&block) end end {1=>[2], 2=>[3, 4], 3=>[], 4=>[]}.tsort #=> [3, 4, 2, 1]
こんな感じで使えて、HashじゃなくてもTSortをincludeして、tsort_each_nodeとtsort_each_child(node, &block)ってメソッドを実装すれば使えます。