class Backports::StdLib::LoadedFeatures
def self.mark_as_loaded(feature)
def self.mark_as_loaded(feature) @@our_loads[feature] = true # Nothing to do, the full path will be OK end
def self.mark_as_loaded(feature)
def self.mark_as_loaded(feature) $LOADED_FEATURES << "#{File.basename(feature, '.rb')}.rb" end
def include?(feature)
def include?(feature) return true if @@our_loads[feature] # Assume backported features are Ruby libraries (i.e. not C) @loaded ||= $LOADED_FEATURES.group_by{|p| File.basename(p, ".rb")} if fullpaths = @loaded[File.basename(feature, ".rb")] fullpaths.any?{|fullpath| base_dir, = fullpath.partition("/#{feature}") $LOAD_PATH.include?(base_dir) } end end
def include?(feature)
def include?(feature) # Assume backported features are Ruby libraries (i.e. not C) $LOADED_FEATURES.include?("#{File.basename(feature, '.rb')}.rb") end