aboutsummaryrefslogtreecommitdiff
path: root/lib/vip_pack.rb
blob: 9a93210a2f16ecee67e0ab0e1537b8a49ed2121a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
module VipPack
  def packed?(data)
    data.start_with?("ZIP:")
  end

  def unpack(data)
    if packed?(data)
      Rails.logger.debug "***** JobEvent#unpack: data is zipped."
      data = data.sub(/^ZIP:/,'')
      data = Base64.decode64(data)
      data = Zip::InputStream.open(StringIO.new(data)) do |io|
        io.get_next_entry
        io.read
      end
      Rails.logger.debug "***** JobEvent#unpack: unzipped data = #{data}"
    else
      Rails.logger.debug "***** JobEvent#unpack: data is not packed."
    end
    data
  end
end