class ResourcePacker
Public Class Methods
new()
click to toggle source
# File lib/resource_packer.rb, line 5 def initialize @out = "" end
Public Instance Methods
add_dir(home_dir)
click to toggle source
# File lib/resource_packer.rb, line 30 def add_dir home_dir Dir.foreach( home_dir ) do |dir| next if dir == "." || dir == ".." add_file "#{home_dir}/#{dir}" end end
add_file(filename)
click to toggle source
# File lib/resource_packer.rb, line 9 def add_file filename mime_type = MIME::Types.type_for(filename) name = filename.split("/").last @out += encode [mime_type.last.to_s.length].pack("N") @out += encode [mime_type.last].pack("A*") @out += encode [name.length].pack("N") @out += encode [name].pack("A*") @out += encode [File.size(filename)].pack("N") @out += encode File.read(filename) end
add_files(files)
click to toggle source
# File lib/resource_packer.rb, line 24 def add_files files files.each do filename add_file filename end end
encode(data)
click to toggle source
# File lib/resource_packer.rb, line 20 def encode data data.force_encoding("ASCII-8BIT") end
pack()
click to toggle source
# File lib/resource_packer.rb, line 37 def pack @out end