Class: AcidicJob::Serializers::ExceptionSerializer

Inherits:
ActiveJob::Serializers::ObjectSerializer
  • Object
show all
Defined in:
lib/acidic_job/serializers/exception_serializer.rb

Instance Method Summary collapse

Instance Method Details

#deserialize(hash) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/acidic_job/serializers/exception_serializer.rb', line 16

def deserialize(hash)
  uncompressed = Zlib::Inflate.inflate(hash["deflated_yaml"])

  if YAML.respond_to?(:unsafe_load)
    YAML.unsafe_load(uncompressed)
  else
    YAML.load(uncompressed) # rubocop:disable Security/YAMLLoad
  end
end

#serialize(exception) ⇒ Object



10
11
12
13
14
# File 'lib/acidic_job/serializers/exception_serializer.rb', line 10

def serialize(exception)
  compressed = Zlib::Deflate.deflate(exception.to_yaml)

  super("deflated_yaml" => compressed)
end

#serialize?(argument) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/acidic_job/serializers/exception_serializer.rb', line 26

def serialize?(argument)
  defined?(Exception) && argument.is_a?(Exception)
end