Module: RUUID::Generator

Included in:
RUUID::Generators::V4
Defined in:
lib/ruuid/generator.rb

Overview

Generator is responsible for generating new UUIDs. Implementors can include and override methods to provide new UUID variants.

Defined Under Namespace

Modules: ClassMethods

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#sourceObject

ClassMethods



27
28
29
# File 'lib/ruuid/generator.rb', line 27

def source
  @source
end

#versionObject

ClassMethods



27
28
29
# File 'lib/ruuid/generator.rb', line 27

def version
  @version
end

Instance Method Details

#generateObject



33
34
35
36
37
38
39
40
# File 'lib/ruuid/generator.rb', line 33

def generate
  raw_bytes.tap { |bytes|
    # Mask version
    bytes[6] = (bytes[6] & 0x0f) | (version << 4)
    # Mask variant
    bytes[8] = (bytes[8] & 0x3f) | 0x80
  }.collect(&:chr).join
end

#initializeObject



29
30
31
# File 'lib/ruuid/generator.rb', line 29

def initialize
  @version = 0
end