2020-11-17 03:33:29 +01:00
|
|
|
# typed: true
|
2019-04-19 15:38:03 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2016-08-18 22:11:42 +03:00
|
|
|
require "tsort"
|
|
|
|
|
2018-09-06 08:29:14 +02:00
|
|
|
module Cask
|
2020-08-24 23:49:10 +02:00
|
|
|
# Topologically sortable hash map.
|
2016-09-24 13:52:43 +02:00
|
|
|
class TopologicalHash < Hash
|
|
|
|
include TSort
|
2016-08-18 22:11:42 +03:00
|
|
|
|
2020-11-17 03:33:29 +01:00
|
|
|
private
|
|
|
|
|
|
|
|
def tsort_each_node(&block)
|
|
|
|
each_key(&block)
|
|
|
|
end
|
2016-08-18 22:11:42 +03:00
|
|
|
|
2016-09-24 13:52:43 +02:00
|
|
|
def tsort_each_child(node, &block)
|
|
|
|
fetch(node).each(&block)
|
|
|
|
end
|
2016-08-18 22:11:42 +03:00
|
|
|
end
|
|
|
|
end
|