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.
on 2011-11-16 23:41
on 2012-03-27 17:27
Issue #5643 has been updated by mame (Yusuke Endoh). Status changed from Open to Assigned Assignee set to matz (Yukihiro Matsumoto) ---------------------------------------- Feature #5643: require/load options and binding option https://bugs.ruby-lang.org/issues/5643#change-25263 Author: trans (Thomas Sawyer) Status: Assigned Priority: Normal Assignee: matz (Yukihiro Matsumoto) 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.
on 2012-10-26 23:28
Issue #5643 has been updated by ko1 (Koichi Sasada). Target version changed from 2.0.0 to next minor I changed target to next minor because no discussion on it. ---------------------------------------- Feature #5643: require/load options and binding option https://bugs.ruby-lang.org/issues/5643#change-31670 Author: trans (Thomas Sawyer) Status: Assigned Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: Target version: next minor 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.
on 2012-12-21 17:27
Issue #5643 has been updated by trans (Thomas Sawyer). I think someone else recently suggested that the wrap argument be able to be a module which the code is then evaluated under, instead of toplevel. Considering that, maybe `:wrap` option should be used for all cases and it can just handle any of boolean, module or binding accordingly. ---------------------------------------- Feature #5643: require/load options and binding option https://bugs.ruby-lang.org/issues/5643#change-34990 Author: trans (Thomas Sawyer) Status: Assigned Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: Target version: next minor 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.
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.