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
10 |
# File 'lib/pagy/modules/b64.rb', line 10 def decode(str) = str.unpack1('m0') |
.encode(bin) ⇒ Object
8 |
# File 'lib/pagy/modules/b64.rb', line 8 def encode(bin) = [bin].pack('m0') |
.urlsafe_decode(str) ⇒ Object
19 20 21 22 23 24 25 26 27 |
# File 'lib/pagy/modules/b64.rb', line 19 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
12 13 14 15 16 17 |
# File 'lib/pagy/modules/b64.rb', line 12 def urlsafe_encode(bin) str = encode(bin) str.chomp!('==') or str.chomp!('=') str.tr!('+/', '-_') str end |