Sha256: 3868c9bfdbafb3f95a7184cd00cd827be4fb1ac4c651de2db90eb47f978fd265

Contents?: true

Size: 503 Bytes

Versions: 2

Compression:

Stored size: 503 Bytes

Contents

module Marshal
  class << self
    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

    alias_method_chain :load, :autoloading
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
activesupport-4.0.0.rc1 lib/active_support/core_ext/marshal.rb
activesupport-4.0.0.beta1 lib/active_support/core_ext/marshal.rb