आप एक हेक्साडेसिमल आईडी को 16 . से ऊपर के आधार पर प्रदर्शित कर सकते हैं इसके स्ट्रिंग प्रतिनिधित्व को छोटा बनाने के लिए। रूबी के पास 2 . से आधारों के साथ काम करने के लिए अंतर्निहित समर्थन है 36 . तक ।
b36 = '4b3fc1400de0690bf2000001'.hex.to_s(36)
# => "29a6dblglcujcoeboqp"
इसे वापस 24-वर्ण वाली स्ट्रिंग में बदलने के लिए आप कुछ इस तरह कर सकते हैं:
'%024x' % b36.to_i(36)
# => "4b3fc1400de0690bf2000001"
बेहतर "संपीड़न" प्राप्त करने के लिए आप 36 . से अधिक आधार में आईडी का प्रतिनिधित्व कर सकते हैं . रूबी पुस्तकालय हैं जो इसमें आपकी सहायता करेंगे। all-your-base
मणि एक ऐसा पुस्तकालय है।
मेरा सुझाव है कि आधार 62 प्रतिनिधित्व के रूप में यह केवल 0-9 . का उपयोग करता है , a-z और a-z वर्ण जिसका अर्थ है कि यह डिफ़ॉल्ट रूप से URL सुरक्षित है।