rb_path_to_class should call custom const_defined? methods
It would be nice if rb_path_to_class called custom const_defined? methods. This would give marshaled objects a chance to locate and define classes when they are being unmarshalled.
I've attached a patch with a test that demonstrates the desired functionality and a (probably naive) implementation.
Updated by oggy (George Ogata) over 7 years ago
Hiroshi Nakamura wrote:
Aaron, is this hook extension still needed for your usecase? (assuming Rails?)
Not bad but it would affect performance...
Would this idea still be considered? I find this issue comes up fairly frequently in Rails apps when an object is serialized and deserialized in a separate process.
I think the performance problem could be addressed by keeping the rb_const_defined call, and then only if that fails try the rb_funcall. WDYT?
Updated by oggy (George Ogata) about 7 years ago
I've attached an updated patch for current ruby trunk, which I think is a little more consistent with non-lazily-defined constant lookup. Also simplified the test case a little.
Updated by matz (Yukihiro Matsumoto) about 7 years ago
- Status changed from Feedback to Closed
This is kind of autoload that sometimes cause problems.
I think it can cause issues than solving problem.
If you have a concrete use-case of this feature, please reopen.