summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2007-03-08 18:47:39 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2007-03-08 18:47:39 +0000
commit220f8a21357b064cb380dcf3be64466ad7a1b2a6 (patch)
treef95a708a0540c486cfdb5d113f189b3de01e15b1
parent47e4864314b2fa9bc537568913f98e0a8d892960 (diff)
downloadredmine-220f8a21357b064cb380dcf3be64466ad7a1b2a6.tar.gz
redmine-220f8a21357b064cb380dcf3be64466ad7a1b2a6.zip
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
-rw-r--r--wiki/app/models/wiki_content.rb17
1 files changed, 8 insertions, 9 deletions
diff --git a/wiki/app/models/wiki_content.rb b/wiki/app/models/wiki_content.rb
index 81a230cd9..b0382cfaf 100644
--- a/wiki/app/models/wiki_content.rb
+++ b/wiki/app/models/wiki_content.rb
@@ -30,11 +30,13 @@ class WikiContent < ActiveRecord::Base
def text=(plain)
case Setting.wiki_compression
when 'gzip'
- gz = Zlib::GzipWriter.new(compressed = StringIO.new)
- gz.write(plain)
- gz.close
- self.data = compressed.string
+ begin
+ self.data = Zlib::Deflate.deflate(plain, Zlib::BEST_COMPRESSION)
self.compression = 'gzip'
+ rescue
+ self.data = plain
+ self.compression = ''
+ end
else
self.data = plain
self.compression = ''
@@ -43,12 +45,9 @@ class WikiContent < ActiveRecord::Base
end
def text
- case compression
+ @text ||= case compression
when 'gzip'
- gz = Zlib::GzipReader.new(StringIO.new(data))
- plain = gz.read
- gz.close
- plain
+ Zlib::Inflate.inflate(data)
else
# uncompressed data
data