# frozen_string_literal: true require_relative "./common" module Fixtury module LocatorBackend class Memory include ::Fixtury::LocatorBackend::Common MATCHER = /^fixtury-oid-(?<object_id>[\d]+)$/.freeze def recognized_reference?(ref) ref.is_a?(String) && MATCHER.match?(ref) end def recognized_value?(_val) true end def load_recognized_reference(ref) match = MATCHER.match(ref) return nil unless match ::ObjectSpace._id2ref(match[:object_id].to_i) rescue RangeError nil end def dump_recognized_value(value) "fixtury-oid-#{value.object_id}" end end end end