From: "trans (Thomas Sawyer)" Date: 2012-05-03T14:04:54+09:00 Subject: [ruby-core:44840] [ruby-trunk - Feature #6376] Feature lookup and checking if feature is loaded Issue #6376 has been updated by trans (Thomas Sawyer). I think it depends. For on thing, a library's api can change over time. So that might not be the best fit, if what your asking is if library `xyz` is being used?. That's a more general question. Two different libraries might share some of the same module namespaces. ---------------------------------------- Feature #6376: Feature lookup and checking if feature is loaded https://bugs.ruby-lang.org/issues/6376#change-26415 Author: trans (Thomas Sawyer) Status: Feedback Priority: Normal Assignee: Category: core Target version: 2.0.0 $LOADED_FEATURES is useful to know what "files" have been loaded. But it doesn't really tell us what "features" have been loaded. If there where were a way to look-up a load path, without actually loading it then it would be possible to compare that to $LOADED_FEATURES and thus know. e.g. require 'ostruct' $LOADED_FEATURES #=> [..., "/home/trans/.local/lib/ry/rubies/1.9.3-p125/lib/ruby/1.9.1/ostruct.rb"] path = require_path('ostruct') #=> "/home/trans/.local/lib/ry/rubies/1.9.3-p125/lib/ruby/1.9.1/ostruct.rb" $LOADED_FEATURES.include?(path) Of course, it would be nice to also have: required?('ostruct') #=> true These methods could be class methods of special module, if it's important to keep the Kernel more tidy, e.g. `Ruby.required?('ostruct')`. I am currently working on a project where I need this (and have a couple of other projects that could use it too) and I've had to implement the whole thing from scratch, which isn't simple, nor fast, nor am I 100% confident that it specs exactly to Ruby's own lookup procedure. So it would be much better if Ruby would expose its lookup functionality. -- http://bugs.ruby-lang.org/