Class: XID

Inherits:
String
  • Object
show all
Defined in:
lib/sixarm_ruby_xid.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(s = nil) ⇒ XID

Returns a new instance of XID.



11
12
13
14
# File 'lib/sixarm_ruby_xid.rb', line 11

def initialize(s = nil)
  s and (XID.valid?(s) or raise ArgumentError)
  super(s || SecureRandom.hex)
end

Class Method Details

.digest(s) ⇒ Object



28
29
30
# File 'lib/sixarm_ruby_xid.rb', line 28

def self.digest(s)
  Digest::SHA256.new.update(s).to_s
end

.parse(s) ⇒ Object



32
33
34
# File 'lib/sixarm_ruby_xid.rb', line 32

def self.parse(s)
  XID.new(s.downcase.gsub(/[^0-9a-f]/,'')[0...32])
end

.valid?(s) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/sixarm_ruby_xid.rb', line 20

def self.valid?(s)
  !!(s && s.is_a?(String) && s.size == 32 && s =~ /\A[0-9a-f]{32}\Z/)
end

Instance Method Details

#digestObject



24
25
26
# File 'lib/sixarm_ruby_xid.rb', line 24

def digest
  XID.digest(self)
end

#valid?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/sixarm_ruby_xid.rb', line 16

def valid?
  XID.valid?(self)
end