class CrxUnpack
Constants
- VERSION
Attributes
magic[R]
public_key[R]
public_key_length[R]
signature[R]
signature_length[R]
version[R]
zip[R]
Public Class Methods
unpack(data)
click to toggle source
# File lib/crx_unpack.rb, line 61 def unpack(data) new.unpack(data) end
unpack_contents(data, dest, leave_zip_file=false)
click to toggle source
# File lib/crx_unpack.rb, line 73 def unpack_contents(data, dest, leave_zip_file=false) new.unpack_contents(data, dest, leave_zip_file) end
unpack_contents_from_file(file, dest, leave_zip_file=false)
click to toggle source
# File lib/crx_unpack.rb, line 81 def unpack_contents_from_file(file, dest, leave_zip_file=false) new.unpack_contents_from_file(file, dest, leave_zip_file) end
unpack_contents_from_io(io, dest, leave_zip_file=false)
click to toggle source
# File lib/crx_unpack.rb, line 77 def unpack_contents_from_io(io, dest, leave_zip_file=false) new.unpack_contents_from_io(io, dest, leave_zip_file) end
unpack_from_file(file)
click to toggle source
# File lib/crx_unpack.rb, line 69 def unpack_from_file(file) new.unpack_from_file(file) end
unpack_from_io(io)
click to toggle source
# File lib/crx_unpack.rb, line 65 def unpack_from_io(io) new.unpack_from_io(io) end
Public Instance Methods
unpack(data)
click to toggle source
# File lib/crx_unpack.rb, line 8 def unpack(data) @magic = data.slice!(0, 4) @version = data.slice!(0, 4) @public_key_length = data.slice!(0, 4).unpack("i*")[0] @signature_length = data.slice!(0, 4).unpack("i*")[0] @public_key = data.slice!(0, public_key_length) @signature = data.slice!(0, signature_length) @zip = data self end
unpack_contents(data, dest, leave_zip_file=false)
click to toggle source
# File lib/crx_unpack.rb, line 28 def unpack_contents(data, dest, leave_zip_file=false) unpack(data) dest = File.expand_path(dest) unless Dir.exists?(dest) Dir.mkdir(dest) end Dir.chdir(dest) do zip_file = 'extension.zip' open(zip_file, 'wb'){ |f| f.write zip } $stdout.reopen('/dev/null') # Ignore `Invalid date/time in zip entry' warning zf = Zip::ZipFile.new(zip_file) zf.each do |entry| zf.extract(entry, entry.to_s) end $stdout.flush $stdout.reopen(STDERR) File.unlink(zip_file) unless leave_zip_file end end
unpack_contents_from_file(file, dest, leave_zip_file=false)
click to toggle source
# File lib/crx_unpack.rb, line 56 def unpack_contents_from_file(file, dest, leave_zip_file=false) unpack_contents(open(file, 'rb').read, dest, leave_zip_file) end
unpack_contents_from_io(io, dest, leave_zip_file=false)
click to toggle source
# File lib/crx_unpack.rb, line 51 def unpack_contents_from_io(io, dest, leave_zip_file=false) io.binmode? || io.binmode unpack_contents(io.read, dest, leave_zip_file) end
unpack_from_file(file)
click to toggle source
# File lib/crx_unpack.rb, line 24 def unpack_from_file(file) unpack(open(file, 'rb').read) end
unpack_from_io(io)
click to toggle source
# File lib/crx_unpack.rb, line 19 def unpack_from_io(io) io.binmode? || io.binmode unpack(io.read) end