Issue #7548 has been updated by trans (Thomas Sawyer).


I just release a gem called backload that basically handles this. But in working through the problem set, it's become clear that there are some features of a good load callback that just can't be done in pure Ruby. I've already mentioned the #relative_require issue. Another issue, is that it would be nice to get the full path of the loaded file, e.g. as an additional option called :fullpath. There's no way to do that in pure Ruby b/c there is no way to lookup a load path (see issue #6376). Even if there were, it would be redundant b/c Ruby is just going to look it up again in the C code.

So putting it all together, it seems this really needs to be implemented in the C if it is to be done right. I do not know if that would mean it cannot be an optional standard library, or not.

I almost did not bother to release backload (and I still have half a mind to yank it) b/c it can't be as complete and solid an implementation as it really ought, but I suppose for some uses it would suffice.

(http://rubyworks.github.com/backload)

----------------------------------------
Feature #7548: Load and Require Callbacks
https://bugs.ruby-lang.org/issues/7548#change-35040

Author: trans (Thomas Sawyer)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: next minor


=begin
Should #load and #require have callbacks? e.g.

  def required(path)
    ...
  end

  def loaded(path, wrap)
    ...
  end

On occasion I have wanted to do load monitoring to track down a bug. This would have made it easier.

Are there any other good use cases?
=end



-- 
http://bugs.ruby-lang.org/