module Trunk class Storage attr_reader :hash def initialize(hash, serializer) @hash = hash @serializer = serializer end def fetch(key) value = @hash[key] return if value.nil? @serializer.deserialize(value) end def store(key, value) @hash[key] = @serializer.serialize(value) end end end