module BarkingIguana::UniqueId

Constants

VERSION

Attributes

hostname[W]
prefix[W]

Public Class Methods

generate() click to toggle source
# File lib/barking_iguana/unique_id.rb, line 12
def self.generate
  t, n = Time.now.to_f.to_s.split('.', 2).map { |s| squash s }
  r = squash(rand(9_999_999_999))
  [ prefix, t, n, r ].join '-'
end
seed(seed) click to toggle source
# File lib/barking_iguana/unique_id.rb, line 8
def self.seed seed
  srand seed
end

Protected Class Methods

hostname() click to toggle source
# File lib/barking_iguana/unique_id.rb, line 18
def self.hostname
  @hostname ||= Socket.gethostname.split(/\./, 2)[0]
end
prefix() click to toggle source
# File lib/barking_iguana/unique_id.rb, line 26
def self.prefix
  @prefix ||= [ VERSION, hostname, squash(Process.pid) ].join('-')
end
squash(number) click to toggle source
# File lib/barking_iguana/unique_id.rb, line 34
def self.squash number
  BaseN::Number.new(number.to_s, 10).rebase(62).to_s
end