Module: LiveComponent::Payload

Defined in:
lib/live_component/payload.rb

Constant Summary collapse

GZIP_MAGIC_BYTES =
[0x1F, 0x8B].pack("C*").freeze

Class Method Summary collapse

Class Method Details

.decode(data) ⇒ Object



12
13
14
15
16
17
# File 'lib/live_component/payload.rb', line 12

def decode(data)
  data = Base64.decode64(data)
  compressed = gzipped?(data)
  data = Zlib.gunzip(data) if compressed
  [JSON.parse(data), compressed]
end

.encode(data, compress: true) ⇒ Object



19
20
21
22
# File 'lib/live_component/payload.rb', line 19

def encode(data, compress: true)
  data = Zlib.gzip(data) if compress
  Base64.encode64(data)
end