diff options
Diffstat (limited to 'storage/mroonga/vendor/groonga/lib/mrb/scripts/require.rb')
-rw-r--r-- | storage/mroonga/vendor/groonga/lib/mrb/scripts/require.rb | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/storage/mroonga/vendor/groonga/lib/mrb/scripts/require.rb b/storage/mroonga/vendor/groonga/lib/mrb/scripts/require.rb index a824e92fa51..1352b327c51 100644 --- a/storage/mroonga/vendor/groonga/lib/mrb/scripts/require.rb +++ b/storage/mroonga/vendor/groonga/lib/mrb/scripts/require.rb @@ -8,7 +8,7 @@ class ScriptLoader end def load_once - if absolete_path?(@base_path) + if absolute_path?(@base_path) loaded = load_once_path(@base_path) if loaded.nil? raise LoadError, error_message @@ -17,8 +17,11 @@ class ScriptLoader end else $LOAD_PATH.each do |load_path| - unless absolete_path?(load_path) + unless absolute_path?(load_path) load_path = File.expand_path(load_path) + if File::ALT_SEPARATOR + load_path = load_path.gsub(File::ALT_SEPARATOR, "/") + end end loaded = load_once_path(File.join(load_path, @base_path)) return loaded unless loaded.nil? @@ -32,20 +35,20 @@ class ScriptLoader "cannot load such file -- #{@base_path}" end - def absolete_path?(path) - path.start_with?("/") + def absolute_path?(path) + path.start_with?("/") or (/\A[a-z]:\\/i === path) end def load_once_path(path) - loaded = load_once_absolete_path(path) + loaded = load_once_absolute_path(path) return loaded unless loaded.nil? return nil unless File.extname(path).empty? - load_once_absolete_path("#{path}.rb") + load_once_absolute_path("#{path}.rb") end - def load_once_absolete_path(path) + def load_once_absolute_path(path) return false if $".include?(path) return false if @@loading_paths.key?(path) |