Sha256: 4df6dac037d4c78b35843c1526b8c895d2ba7ad6630c13cbcff1b295398dda9d

Contents?: true

Size: 438 Bytes

Versions: 1

Compression:

Stored size: 438 Bytes

Contents

# frozen_string_literal: true

require 'base62-rb'

class UUID4
  module Formatter
    class Base62
      REGEXP = /\A[0-9A-Za-z]{14,22}\z/.freeze

      def encode(uuid)
        ::Base62.encode(uuid.to_i)
      end

      def decode(value)
        return unless value.respond_to?(:to_str) && (value = value.to_str) =~ REGEXP
        return unless ::UUID4.valid_int?(int = ::Base62.decode(value))

        int
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
uuid4-1.4.0 lib/uuid4/formatter/base62.rb