| Class | Merb::Rack::ConditionalGet |
| In: |
merb-core/lib/merb-core/rack/middleware/conditional_get.rb
|
| Parent: | Merb::Rack::Middleware |
:api: plugin
# File merb-core/lib/merb-core/rack/middleware/conditional_get.rb, line 7
7: def call(env)
8: status, headers, body = @app.call(env)
9:
10: if document_not_modified?(env, headers)
11: status = 304
12: body = Merb::Const::EMPTY_STRING
13: # set Date header using RFC1123 date format as specified by HTTP
14: # RFC2616 section 3.3.1.
15: end
16:
17: [status, headers, body]
18: end
:api: private
# File merb-core/lib/merb-core/rack/middleware/conditional_get.rb, line 22
22: def document_not_modified?(env, headers)
23: if etag = headers[Merb::Const::ETAG]
24: etag == env[Merb::Const::HTTP_IF_NONE_MATCH]
25: elsif last_modified = headers[Merb::Const::LAST_MODIFIED]
26: last_modified == env[Merb::Const::HTTP_IF_MODIFIED_SINCE]
27: end
28: end