Class Merb::Rack::ConditionalGet
In: merb-core/lib/merb-core/rack/middleware/conditional_get.rb
Parent: Merb::Rack::Middleware

Methods

Public Instance methods

:api: plugin

[Source]

    # 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

Private Instance methods

:api: private

[Source]

    # 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

[Validate]