Class: Agora::AgoraDynamicKey2::Util
- Inherits:
-
Object
- Object
- Agora::AgoraDynamicKey2::Util
- Defined in:
- lib/agora/dynamic_key2/util.rb
Class Method Summary collapse
- .pack_int16(int) ⇒ Object
- .pack_map_uint32(map) ⇒ Object
- .pack_string(str) ⇒ Object
- .pack_uint16(int) ⇒ Object
- .pack_uint32(int) ⇒ Object
- .unpack_int16(data) ⇒ Object
- .unpack_map_uint32(data) ⇒ Object
- .unpack_string(data) ⇒ Object
- .unpack_uint16(data) ⇒ Object
- .unpack_uint32(data) ⇒ Object
Class Method Details
.pack_int16(int) ⇒ Object
5 6 7 |
# File 'lib/agora/dynamic_key2/util.rb', line 5 def self.pack_int16(int) [int].pack('s') end |
.pack_map_uint32(map) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/agora/dynamic_key2/util.rb', line 41 def self.pack_map_uint32(map) kv = '' Hash[map.sort].each do |k, v| kv += pack_uint16(k) + pack_uint32(v) end (pack_uint16(map.size) + kv).force_encoding('utf-8') end |
.pack_string(str) ⇒ Object
29 30 31 |
# File 'lib/agora/dynamic_key2/util.rb', line 29 def self.pack_string(str) pack_uint16(str.bytesize) + str end |
.pack_uint16(int) ⇒ Object
13 14 15 |
# File 'lib/agora/dynamic_key2/util.rb', line 13 def self.pack_uint16(int) [int].pack('v') end |
.pack_uint32(int) ⇒ Object
21 22 23 |
# File 'lib/agora/dynamic_key2/util.rb', line 21 def self.pack_uint32(int) [int].pack('V') end |
.unpack_int16(data) ⇒ Object
9 10 11 |
# File 'lib/agora/dynamic_key2/util.rb', line 9 def self.unpack_int16(data) [data[0..2].unpack1('s'), data[2..-1]] end |
.unpack_map_uint32(data) ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/agora/dynamic_key2/util.rb', line 49 def self.unpack_map_uint32(data) len, data = unpack_uint16(data) map = {} (1..len).each do k, data = unpack_uint16(data) v, data = unpack_uint32(data) map[k] = v end [map, data] end |
.unpack_string(data) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/agora/dynamic_key2/util.rb', line 33 def self.unpack_string(data) len, data = unpack_uint16(data) if len.zero? return ['', data[len..-1]] end [data[0..len - 1], data[len..-1]] end |
.unpack_uint16(data) ⇒ Object
17 18 19 |
# File 'lib/agora/dynamic_key2/util.rb', line 17 def self.unpack_uint16(data) [data[0..2].unpack1('v'), data[2..-1]] end |
.unpack_uint32(data) ⇒ Object
25 26 27 |
# File 'lib/agora/dynamic_key2/util.rb', line 25 def self.unpack_uint32(data) [data[0..4].unpack1('V'), data[4..-1]] end |