Issue #5643 has been reported by Thomas Sawyer.

----------------------------------------
Feature #5643: require/load options and binding option
http://redmine.ruby-lang.org/issues/5643

Author: Thomas Sawyer
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 2.0.0


Current Kernel#load is defined as:

    load(filename, wrap=false)

I purpose that it be modified to work as option argument, e.g.

    load(filename, :wrap=>true)

Right off the bat this has better name connascence.

Then support an additional option `:binding`, such that, given:

    $ cat lib/example.rb
    def a
      1
    end

then

    class X
      load('example.rb', :binding=>binding)
    end

    X.new.a  #=> 1

The binding option should also work with #require (which would also support option parameter) differing from #load in the it would only allow the feature to be loaded once per-binding's self regardless of being required again.

This ability would greatly benefit systems that need "plugin" capability. Presently, a great deal of coding has to go into simulating this functionality to create plugin systems, which are often imperfect nor robust.



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