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