about summary refs log tree commit
path: root/lib/metropolis/deflate.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/metropolis/deflate.rb')
-rw-r--r--lib/metropolis/deflate.rb17
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/metropolis/deflate.rb b/lib/metropolis/deflate.rb
index 438985e..c965033 100644
--- a/lib/metropolis/deflate.rb
+++ b/lib/metropolis/deflate.rb
@@ -4,28 +4,31 @@ require "zlib"
 # allows storing pre-deflated data on disk and serving it
 # as-is for clients that accept that deflate encoding
 module Metropolis::Deflate
+  include Metropolis::Constants
+  Compression = "deflate"
+
   def get(key, env)
     status, headers, body = r = super
-    if 200 == status && /\bdeflate\b/ !~ env['HTTP_ACCEPT_ENCODING']
+    if 200 == status && /\bdeflate\b/ !~ env[HTTP_ACCEPT_ENCODING]
       inflater = Zlib::Inflate.new(-Zlib::MAX_WBITS)
       body[0] = inflater.inflate(body[0]) << inflater.finish
       inflater.end
-      headers['Content-Length'] = body[0].size.to_s
-      headers.delete('Content-Encoding')
-      headers.delete('Vary')
+      headers[Content_Length] = body[0].size.to_s
+      headers.delete(Content_Encoding)
+      headers.delete(Vary)
     end
     r
   end
 
   def put(key, env)
-    Wrapper.new(env) if 'deflate' != env['HTTP_CONTENT_ENCODING']
+    Wrapper.new(env) if Compression != env[HTTP_CONTENT_ENCODING]
     super(key, env)
   end
 
   def self.extended(obj)
     obj.instance_eval do
-      @headers['Content-Encoding'] = 'deflate'
-      @headers['Vary'] = 'Accept-Encoding'
+      @headers[Content_Encoding] = Compression
+      @headers[Vary] = Accept_Encoding
     end
   end