Class: CloudQuery::X64
- Inherits:
-
Object
- Object
- CloudQuery::X64
- Defined in:
- lib/cloud_query/x64.rb
Constant Summary collapse
- Shift =
6- Mask =
0x3f- Munge =
0x30- NumberOfChars =
(64 + Shift - 1)/Shift
- Maximum =
0xffffffffffffffff- Compliment =
0x8000000000000000- Characters =
'.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'
Class Method Summary collapse
Class Method Details
.encode(object, characters = Characters, munge = Munge) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/cloud_query/x64.rb', line 11 def self.encode(object, characters = Characters, munge = Munge) int = integer_from_object(object) chars = [] while chars.length == 0 || int != 0 byte = int & Maximum (0...NumberOfChars).each do |i| index = byte & Mask index |= munge if i == (NumberOfChars - 1) chars.unshift characters[index, 1] byte = (byte >> Shift) & Maximum end int = int >> 64 end chars.join end |