# require_relative was introduced in 1.9.2. This makes it # available to younger rubies. It trys hard to not re-require # files. unless Kernel.respond_to?(:require_relative) module Kernel def require_relative(path) desired_path = File.expand_path('../'+path.to_str, caller[0]) shortest = desired_path $:.each do |path| path += '/' if desired_path.index(path) == 0 candidate = desired_path.sub(path, '') shortest = candidate if candidate.size < shortest.size end end require shortest end end end