ruby/lib/bundler/safe_marshal.rb

32 строки
597 B
Ruby

# frozen_string_literal: true
module Bundler
module SafeMarshal
ALLOWED_CLASSES = [
Array,
FalseClass,
Gem::Specification,
Gem::Version,
Hash,
String,
Symbol,
Time,
TrueClass,
].freeze
ERROR = "Unexpected class %s present in marshaled data. Only %s are allowed."
PROC = proc do |object|
object.tap do
unless ALLOWED_CLASSES.include?(object.class)
raise TypeError, format(ERROR, object.class, ALLOWED_CLASSES.join(", "))
end
end
end
def self.proc
PROC
end
end
end