diff options
| author | Blake Imsland <blake@zxcv.dev> | 2022-03-13 23:27:46 -0700 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2023-12-29 02:43:45 +0000 |
| commit | e86b4c29fc91fa510ee2cf3f5e3296a9a66affb5 (patch) | |
| tree | f1a8ea39866327a228684d66be7eb278315e6588 /lib | |
| parent | 2b96737636e1c96fedda83895ef32e19a914e310 (diff) | |
[ruby/securerandom] Increase speed of UUID generation
https://github.com/ruby/securerandom/commit/b587b8c7cb
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/random/formatter.rb | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/random/formatter.rb b/lib/random/formatter.rb index 27eb6dae52..0548e86cca 100644 --- a/lib/random/formatter.rb +++ b/lib/random/formatter.rb @@ -168,10 +168,10 @@ module Random::Formatter # See RFC4122[https://datatracker.ietf.org/doc/html/rfc4122] for details of UUID. # def uuid - ary = random_bytes(16).unpack("NnnnnN") - ary[2] = (ary[2] & 0x0fff) | 0x4000 - ary[3] = (ary[3] & 0x3fff) | 0x8000 - "%08x-%04x-%04x-%04x-%04x%08x" % ary + ary = random_bytes(16) + ary.setbyte(6, (ary.getbyte(6) & 0x0f) | 0x40) + ary.setbyte(8, (ary.getbyte(8) & 0x3f) | 0x80) + ary.unpack("H8H4H4H4H12").join(?-) end alias uuid_v4 uuid |
