brew/Library/Homebrew/cask/topological_hash.rb

22 lines
326 B
Ruby
Raw Normal View History

# typed: true
# 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
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