# typed: strict # frozen_string_literal: true module DearInventory module Validators class Guid < DearInventory::Validator extend T::Sig REGEX = T.let( [ /\A[\da-f]{32}\z/i, /\A(urn:uuid:)?[\da-f]{8}-([\da-f]{4}-){3}[\da-f]{12}\z/i, ].freeze, T::Array[Regexp] ) sig { override.void } def call value = instance_variable_get(:@value) return if value.nil? return if REGEX.any? { |regex| value =~ regex } raise_error("#{value.inspect} is not a valid GUID") end end end end