Sha256: bf64d8f1e17f43322eaff3ded13660ef42b8d95687ac2d02aa7fc382d1b81304

Contents?: true

Size: 612 Bytes

Versions: 10

Compression:

Stored size: 612 Bytes

Contents

begin
require 'securerandom' 
rescue LoadError
end

module Identifier
  
  def self.generate
    if defined? SecureRandom
      return SecureRandom.uuid if SecureRandom.respond_to? :uuid
      
      bytes = SecureRandom.random_bytes(16)
      bytes = bytes.unpack("NnnnnN")
    end
    
    bytes ||= 
    [
      rand(0xFFFFFFFF),
      rand(0x0000FFFF),
      rand(0x0000FFFF),
      rand(0x0000FFFF),
      rand(0x0000FFFF),
      rand(0xFFFFFFFF),
    ]
    
    bytes[2] = (bytes[2] & 0x0FFF) | 0x4000
    bytes[3] = (bytes[3] & 0x3FFF) | 0x8000
    
    "%08x-%04x-%04x-%04x-%04x%08x" % bytes
  end
  
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
identifier-1.1.9 lib/identifier.rb
identifier-1.1.8 lib/identifier.rb
identifier-1.1.7 lib/identifier.rb
identifier-1.1.6 lib/identifier.rb
identifier-1.1.5 lib/identifier.rb
identifier-1.1.4 lib/identifier.rb
identifier-1.1.3 lib/identifier.rb
identifier-1.1.2 lib/identifier.rb
identifier-1.1.1 lib/identifier.rb
identifier-1.1.0 lib/identifier.rb