module Gem::Util
def self.traverse_parents directory
def self.traverse_parents directory return enum_for __method__, directory unless block_given? here = File.expand_path directory start = here Dir.chdir start begin loop do yield here Dir.chdir '..' return if Dir.pwd == here # toplevel here = Dir.pwd end ensure Dir.chdir start end end