From ac2d6f1898a5aa1aad7cc254290ec9341d2cdf60 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Fri, 23 Dec 2011 08:33:21 -0800 Subject: Remove assumption about a stable $: In some environments (e.g. [1]) $: can change between loading the library and using it. To avoid this problem, we always pass an absolute path to autoload internal modules. [1] https://github.com/pry/pry/issues/280 --- lib/coderay.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'lib/coderay.rb') diff --git a/lib/coderay.rb b/lib/coderay.rb index c897220..63ec555 100644 --- a/lib/coderay.rb +++ b/lib/coderay.rb @@ -127,7 +127,18 @@ module CodeRay $CODERAY_DEBUG ||= false - require 'coderay/version' + # Assuming the rel_path is a subpath of lib/ + def self.abs_path(rel_path) + File.join(File.dirname(__FILE__), rel_path) + end + + # In order to work in environments that alter $:, we need to + # set the absolute path when autoloading files. + def self.autoload(const_name, rel_path) + super const_name, abs_path(rel_path) + end + + require abs_path('coderay/version') # helpers autoload :FileType, 'coderay/helpers/file_type' -- cgit v1.2.1