はじめに Ruby Advent Calendar 2017 5日目の記事です。 この記事では、Ruby標準ライブラリにある tsort について、説明します。 tsort を使うことで、依存関係を解決して、順番に処理することなどが簡単にできます。 今回の内容は Meguro.rb #9 での発表資料をベースにしています。 トポロジカルソートとは グラフ理論でのアルゴリズムの1つ 依存関係を順に処理したいときに使える Ruby 標準ライブラリの tsort でトポロジカルソートができる トポロジカルソートの利用例 Set#divide 標準ライブラリの Set#divide は内部実装で tsort を使っています。 その前に Set#divide について説明しましょう。 以下、るりまでの説明です。 元の集合をブロックで定義される関係で分割し、その結果を集合として返します。 ブロックパラ