Sha256: 4629339d087a6da05751fb738a97742463a98a473403a2ca5ffb43c4124842fc

Contents?: true

Size: 537 Bytes

Versions: 3

Compression:

Stored size: 537 Bytes

Contents

module Notifications
  class UuidValidator
    HEX = /[0-9a-f]/
    REGEX = /^#{HEX}{8}-#{HEX}{4}-#{HEX}{4}-#{HEX}{4}-#{HEX}{12}$/

    attr_accessor :uuid

    def initialize(uuid)
      self.uuid = uuid
    end

    def valid?
      !!(uuid && uuid.match(REGEX))
    end

    def self.validate!(uuid, contextual_message = nil)
      return if new(uuid).valid?

      message = "#{uuid.inspect} is not a valid uuid"
      message += "\n#{contextual_message}" if contextual_message

      raise ArgumentError, message
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
notifications-ruby-client-2.8.0 lib/notifications/client/uuid_validator.rb
notifications-ruby-client-2.7.0 lib/notifications/client/uuid_validator.rb
notifications-ruby-client-2.6.0 lib/notifications/client/uuid_validator.rb