Module: Marshal

Defined in:
lib/active_support/core_ext/marshal.rb

Class Method Summary collapse

Class Method Details

.load_with_autoloading(source) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/active_support/core_ext/marshal.rb', line 5

def load_with_autoloading(source)
  load_without_autoloading(source)
rescue ArgumentError, NameError => exc
  if exc.message.match(%r|undefined class/module (.+)|)
    # try loading the class/module
    $1.constantize
    # if it is a IO we need to go back to read the object
    source.rewind if source.respond_to?(:rewind)
    retry
  else
    raise exc
  end
end