Project

General

Profile

Actions

Feature #5643

open

require/load options and binding option

Added by trans (Thomas Sawyer) almost 10 years ago. Updated over 3 years ago.

Status:
Assigned
Priority:
Normal
Target version:
-
[ruby-core:41082]

Description

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.


Related issues

Related to Ruby master - Feature #10320: require into moduleOpenActions
Actions

Also available in: Atom PDF