Module: ActiveSupport::MarshalWithAutoloading
- Defined in:
- lib/active_support/core_ext/marshal.rb
Overview
:nodoc:
Instance Method Summary collapse
Instance Method Details
#load(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(source, proc = nil) super(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 |