Class: XID
- Inherits:
-
String
- Object
- String
- XID
- Defined in:
- lib/sixarm_ruby_xid.rb
Class Method Summary collapse
Instance Method Summary collapse
- #digest ⇒ Object
-
#initialize(s = nil) ⇒ XID
constructor
A new instance of XID.
- #valid? ⇒ Boolean
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
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
#digest ⇒ Object
24 25 26 |
# File 'lib/sixarm_ruby_xid.rb', line 24 def digest XID.digest(self) end |
#valid? ⇒ Boolean
16 17 18 |
# File 'lib/sixarm_ruby_xid.rb', line 16 def valid? XID.valid?(self) end |