Sha256: 523c3f49c93fb3a8a3e8981dfaec9643e5938281815ea86ae95b47d9a26718fd
Contents?: true
Size: 873 Bytes
Versions: 1
Compression:
Stored size: 873 Bytes
Contents
class Card module Env # serializing environment (eg for delayed jobs) module Serialization def serialize @serialized = Serializable.instance_methods.each_with_object({}) do |attr, hash| hash[attr] = send attr end end # @param serialized_env [Hash] def with serialized_env tmp_env = serialize @env ||= {} @env.update serialized_env yield ensure @env.update tmp_env if tmp_env end # supercede serializable methods when serialized values are available # # note - at present this must be done manually when adding serializable methods # in mods. Serializable.instance_methods.each do |attrib| define_method attrib do @serialized&.key?(attrib) ? @serialized[attrib] : super() end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
card-1.104.2 | lib/card/env/serialization.rb |