# File lib/fastri/util.rb, line 49 def gem_directories_unique return [] unless defined? Gem gemdirs = Gem.path.map{|p| Dir["#{p}/doc/*/ri"]}.flatten gems = Hash.new{|h,k| h[k] = []} gemdirs.each do |path| gemname, version = %r{/([^/]+)-([^-]*)/ri$}.match(path).captures if gemname.nil? # doesn't follow any conventions :( gems[path[%r{/([^/]+)/ri$}, 1]] << [nil, path] else gems[gemname] << [version, path] end end gems.sort_by{|name, _| name}.map do |name, versions| version, path = versions.sort.last [name, version, File.expand_path(path)] end end