Module: Pagy::B64
- Defined in:
- lib/pagy/modules/b64.rb
Overview
Cheap Base64 specialized methods to avoid dependencies
Class Method Summary collapse
- .decode(str) ⇒ Object
- .encode(bin) ⇒ Object
- .urlsafe_decode(str) ⇒ Object
- .urlsafe_encode(bin) ⇒ Object
Class Method Details
.decode(str) ⇒ Object
12 13 14 |
# File 'lib/pagy/modules/b64.rb', line 12 def decode(str) str.unpack1('m0') end |
.encode(bin) ⇒ Object
8 9 10 |
# File 'lib/pagy/modules/b64.rb', line 8 def encode(bin) [bin].pack('m0') end |
.urlsafe_decode(str) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/pagy/modules/b64.rb', line 24 def urlsafe_decode(str) if !str.end_with?('=') && str.length % 4 != 0 str = str.ljust((str.length + 3) & ~3, '=') str.tr!('-_', '+/') else str = str.tr('-_', '+/') end decode(str) end |
.urlsafe_encode(bin) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/pagy/modules/b64.rb', line 16 def urlsafe_encode(bin) str = encode(bin) str.tr!('+/', '-_') str.delete!('=') str end |