Last Modified
2013-08-07 11:48:40 +0000
Requires
  • zip/zip

Description

With ziprequire you can load ruby modules from a zip file. This means ruby's module include path can include zip-files.

The following example creates a zip file with a single entry log/simplelog.rb that contains a single function simpleLog:

require 'zip/zipfilesystem'

Zip::ZipFile.open("my.zip", true) {
  |zf| 
  zf.file.open("log/simplelog.rb", "w") { 
    |f|
    f.puts "def simpleLog(v)"
    f.puts '  Kernel.puts "INFO: #{v}"'
    f.puts "end"
  }
}

To use the ruby module stored in the zip archive simply require zip/ziprequire and include the my.zip zip file in the module search path. The following command shows one way to do this:

ruby -rzip/ziprequire -Imy.zip  -e " require 'log/simplelog'; simpleLog 'Hello world' "