Sha256: 16621292d9ff238b3b2cfbf7daacf73f1b4c9f956f04186be38a3ec7cbd7fef6

Contents?: true

Size: 900 Bytes

Versions: 18

Compression:

Stored size: 900 Bytes

Contents

unless Kernel.respond_to?(:require_relative, true)
  
module Kernel
  module_function
  OriginalDir = File.expand_path(Dir.pwd) # try to accomodate for later Directory changes...
  
  def require_relative(relative_feature)
    c = caller.first
    # could be spec.sane.rb:127
    # or e:/abc.rb:127
    e = c.rindex(/:\d+/)
    file = $`
    if /\A\((.*)\)/ =~ file # eval, etc.
      raise LoadError, "require_relative is called in #{$1}"
    end
    absolute_feature = File.expand_path(File.join(File.dirname(file), relative_feature))
    begin
      require absolute_feature
    rescue LoadError => e
      # hacky kludge in case they've changed dirs...
      begin
        require File.expand_path(File.join(OriginalDir,File.dirname(file), relative_feature))
      rescue LoadError => ignore_me
        raise e # don't mask...
      end
    end
    
  end
end

end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
sane-0.25.8 lib/sane/require_relative.rb
sane-0.25.7 lib/sane/require_relative.rb
sane-0.25.6 lib/sane/require_relative.rb
sane-0.25.5 lib/sane/require_relative.rb
sane-0.25.4 lib/sane/require_relative.rb
sane-0.25.3 lib/sane/require_relative.rb
sane-0.25.2 lib/sane/require_relative.rb
sane-0.25.1 lib/sane/require_relative.rb
sane-0.25.0 lib/sane/require_relative.rb
sane-0.24.6 lib/sane/require_relative.rb
sane-0.24.5 lib/sane/require_relative.rb
sane-0.24.4 lib/sane/require_relative.rb
sane-0.24.3 lib/sane/require_relative.rb
sane-0.23.6 lib/sane/require_relative.rb
sane-0.24.2 lib/sane/require_relative.rb
sane-0.24.1 lib/sane/require_relative.rb
sane-0.24.0 lib/sane/require_relative.rb
sane-0.23.5 lib/sane/require_relative.rb