Sha256: d228ff1169380daa35d557a31afec4cca6880de22243d5fc2135933909fe6ce3

Contents?: true

Size: 655 Bytes

Versions: 3

Compression:

Stored size: 655 Bytes

Contents

# frozen_string_literal: true

require 'securerandom'
require 'shortuuid'
require 'base64'

module Core
  # random id helpers
  module Random
    def self.short_id
      ShortUUID.shorten(SecureRandom.uuid)
    end

    def self.uuid
      SecureRandom.uuid
    end

    def self.base64_id(bytes)
      Base64.strict_encode64(SecureRandom.random_bytes(bytes))
    end

    def self.urlsafe_base64_id(bytes)
      Base64.urlsafe_encode64(SecureRandom.random_bytes(bytes), padding: false)
    end

    # generate an integer i such that 0 <= i < max_plus_one
    def self.number(max_plus_one)
      SecureRandom.random_number(max_plus_one)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
svcbase-0.1.18 lib/svcbase/random.rb
svcbase-0.1.17 lib/svcbase/random.rb
svcbase-0.1.16 lib/svcbase/random.rb