From: Dave Thomas Date: 2001-10-30T11:52:28+09:00 Subject: [ruby-talk:23796] Re: RubyGems Status (was: Re: Someinspirations from REBOL) "Rich Kilmer" writes: > What if the file format was a Ruby document like... > > require "rubygems" #or whatever ;) > include Gem unless kind_of? Gem > > begin_gem "RichsCoolGem" > author="Rich Kilmer" > version="1.1.3" > requires="RyansCoolGem,0.0.2" > requires="RobertsCoolGem,2.0.0" > signature="...secure hash/signed..." > public_key="...public key..." > compression="LZO" > encoding="BASE64" > executable="myFile1.rb" > > [FILE=>"myFile1.rb", MIME_TYPE=>"text/ruby", VERSION=>"1.1.1"] = <<_FILE > ...BASE64 ENCODED, LZO COMPRESSED FILE... > _FILE > [FILE=>"myFile2.rb", VERSION=>"1.0.2", COMPRESSION=>"ZLIB"] = <<_FILE > ...BASE64 ENCODED, ZLIB COMPRESSED FILE... > _FILE > > > end_gem Or something like: g = Gem.new do author "Rich Kilmer" version "1.1.3" requires "RyansCoolGem,0.0.2" requires "RobertsCoolGem,2.0.0" signature "...secure hash/signed..." public_key "...public key..." compression "LZO" encoding Encoding::BASE64 executable "myFile1.rb" end g << GemContent.new("myFile1.rb", <<-_FILE1 :mime => "text/ruby", :version => "1.1.1"]) ...BASE64 ENCODED, LZO COMPRESSED FILE... _FILE1 g << GemContent.new("myFile2.rb", <<- "1.0.2", :compression => "ZLIB") ...BASE64 ENCODED, ZLIB COMPRESSED FILE... _FILE2 I like the fact that using separate objects for the file contents gives me flexibility in the future to substitute network downloads and the like. Dave