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.
#3 [ruby-core:76071] Updated by oggy (George Ogata) over 2 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?
#4 [ruby-core:76262] Updated by oggy (George Ogata) over 2 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.