diff --git a/lib/require_relative.rb b/lib/require_relative.rb new file mode 100644 index 0000000..64836dd --- /dev/null +++ b/lib/require_relative.rb @@ -0,0 +1,21 @@ +# 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 +