changed from Zlib::GzipWriter/Zlib::GzipReader to Zlib::Inflate/Zlib::Deflate
git-svn-id: http://redmine.rubyforge.org/svn/branches/work@315 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
1 parent
47e4864314
commit
220f8a2135
1 file changed
+8
-9
@@ -30,11 +30,13 @@ class WikiContent < ActiveRecord::Base
|
|||||||
def text=(plain)
|
def text=(plain)
|
||||||
case Setting.wiki_compression
|
case Setting.wiki_compression
|
||||||
when 'gzip'
|
when 'gzip'
|
||||||
gz = Zlib::GzipWriter.new(compressed = StringIO.new)
|
begin
|
||||||
gz.write(plain)
|
self.data = Zlib::Deflate.deflate(plain, Zlib::BEST_COMPRESSION)
|
||||||
gz.close
|
|
||||||
self.data = compressed.string
|
|
||||||
self.compression = 'gzip'
|
self.compression = 'gzip'
|
||||||
|
rescue
|
||||||
|
self.data = plain
|
||||||
|
self.compression = ''
|
||||||
|
end
|
||||||
else
|
else
|
||||||
self.data = plain
|
self.data = plain
|
||||||
self.compression = ''
|
self.compression = ''
|
||||||
@@ -43,12 +45,9 @@ class WikiContent < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def text
|
def text
|
||||||
case compression
|
@text ||= case compression
|
||||||
when 'gzip'
|
when 'gzip'
|
||||||
gz = Zlib::GzipReader.new(StringIO.new(data))
|
Zlib::Inflate.inflate(data)
|
||||||
plain = gz.read
|
|
||||||
gz.close
|
|
||||||
plain
|
|
||||||
else
|
else
|
||||||
# uncompressed data
|
# uncompressed data
|
||||||
data
|
data
|
||||||
|
|||||||
Reference in new issue
Block a user