Module: Marshal
- Defined in:
- lib/active_support/core_ext/marshal.rb
Class Method Summary collapse
Class Method Details
.load_with_autoloading(source, proc = nil) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/active_support/core_ext/marshal.rb', line 5 def load_with_autoloading(source, proc = nil) load_without_autoloading(source, proc) rescue ArgumentError, NameError => exc if exc..match(%r|undefined class/module (.+?)(::)?\z|) # try loading the class/module loaded = $1.constantize raise unless $1 == loaded.name # if it is an IO we need to go back to read the object source.rewind if source.respond_to?(:rewind) retry else raise exc end end |