我有一个mod_rails所在服务器的磁盘空间,奇怪的是,在一个溢价。 有我的方式来压缩我的应用程序的源代码,像Python的Zipimport一起 ?
有明显的缺点,以这一点,所以我也许应该就坏了,花的磁盘空间镍,但我想这将会是值得一试。
我有一个mod_rails所在服务器的磁盘空间,奇怪的是,在一个溢价。 有我的方式来压缩我的应用程序的源代码,像Python的Zipimport一起 ?
有明显的缺点,以这一点,所以我也许应该就坏了,花的磁盘空间镍,但我想这将会是值得一试。
哦,这是整齐的。 退房rubyzip宝石:
rubyzip还设有拉链/ ziprequire.rb模块( 源 ),其允许红宝石从拉链档案加载红宝石模块。
( 更新 :ziprequire.rb是在rubyzip宝石不再存在,但源链接似乎包含它的旧内容仍然)。
像这样。 这只是稍稍从他们的例子修改:
require 'rubygems'
require 'zip/zipfilesystem'
require 'zip/ziprequire'
Zip::ZipFile.open("/tmp/mylib.zip", true) do |zip|
zip.file.open('mylib/somefile.rb', 'w') do |file|
file.puts "def foo"
file.puts " puts 'foo was here'"
file.puts "end"
end
end
$:.unshift '/tmp/mylib.zip'
require 'mylib/somefile'
foo # => foo was here
您不必使用rubyzip库来创建压缩库,当然。 您可以使用CLI的邮政编码为这一点。
require
和load
就像任何其他的方法。 你可以取消定义它们,重新定义它们,覆盖它们,勾他们,包裹他们做任何你想要的。 事实上,这正是了RubyGems是如何工作的。
现在,我不知道是否有人对你已经实现了这一点,但实际上我记得这个在一些讨论ruby-talk上的邮件列表。
不过,也有从,你可以看看,也许复制/适应他们在做什么,你的目的的备选地点装载库代码的一些例子:
require
的HTTP URI require
加载库出(加密的)SQLite数据库而不是文件系统的