class Xid::Generator

Xid Generator

Attributes

value[RW]

Public Class Methods

new(rand_val = nil, machine_id = 0) click to toggle source
# File lib/ruby_xid.rb, line 116
def initialize(rand_val = nil, machine_id = 0)
  @mutex = Mutex.new
  @rand_int = rand_val || rand(65_535)
  @pid = Process.pid
  @machine_id = machine_id
end

Public Instance Methods

generate() click to toggle source
# File lib/ruby_xid.rb, line 123
def generate
  # () -> str
  @mutex.synchronize do
    @rand_int += 1
  end
  [::Time.new.to_i, @machine_id, @pid, @rand_int << 8].pack('N NX n NX')
end