class XID

Public Class Methods

generate() click to toggle source

Generate a new XID string.

Example:

string = XID.generate
#=> "4bb88af57d4ddc224fecad688442423d"

Return: [String] A new XID string

# File lib/sixarm_ruby_xid/xid.rb, line 19
def self.generate
  SecureRandom.hex
end
parse(object) click to toggle source

Parse any object to an XID string.

This does these steps:

* Convert the object to a string by calling `#to_s`.
* Convert the string to lower case by calling `#downcase`.
* Delete any non-hex characters.
* Take the first 32 characters.

Example:

string = XID.parse("***FFAD30A1-BE5E-B511-9ED8-976CAB0281B6***")
#=> "ffad30a1be5eb5119ed8976cab0281b6"

Return: [XID] A new XID

# File lib/sixarm_ruby_xid/xid.rb, line 52
def self.parse(object)
  xid = object.to_s.downcase.gsub(/[^0-9a-f]/,'')[0...32]
  raise ArgumentError if !XID.valid?(xid)
  xid
end
valid?(string) click to toggle source

Is a given XID string valid?

Example:

XID.valid?("4bb88af57d4ddc224fecad688442423d") #=> true
XID.valid?("hello") #=> false

Return: [true/false]

# File lib/sixarm_ruby_xid/xid.rb, line 32
def self.valid?(string)
  !!(string && string.is_a?(String) && string.size == 32 && string =~ /\A[0-9a-f]{32}\z/)
end