Module: Saro::Dat::Util
- Defined in:
- lib/saro/dat/util.rb
Class Method Summary collapse
- .decode_base64_url(s) ⇒ Object
- .decode_base64_url_str(s) ⇒ Object
- .encode_base64_url(s) ⇒ Object
- .encode_base64_url_str(s) ⇒ Object
Class Method Details
.decode_base64_url(s) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/saro/dat/util.rb', line 23 def decode_base64_url(s) return "".b if s.nil? if s.is_a?(String) return "".b if s.empty? end # More robust way for older Ruby s = s.to_s.tr('-_', '+/') rem = s.bytesize % 4 s += ("=" * (4 - rem)) if rem > 0 Base64.decode64(s).b end |
.decode_base64_url_str(s) ⇒ Object
37 38 39 |
# File 'lib/saro/dat/util.rb', line 37 def decode_base64_url_str(s) decode_base64_url(s).force_encoding('utf-8') end |
.encode_base64_url(s) ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/saro/dat/util.rb', line 10 def encode_base64_url(s) return "".b if s.nil? if s.is_a?(String) return "".b if s.empty? s = s.encode('utf-8') unless s.encoding == Encoding::BINARY end Base64.urlsafe_encode64(s, padding: false).b end |
.encode_base64_url_str(s) ⇒ Object
19 20 21 |
# File 'lib/saro/dat/util.rb', line 19 def encode_base64_url_str(s) encode_base64_url(s).force_encoding('ascii') end |