class Assets::Responder

Abstract base class for asset responders

Constants

HEADERS
NOT_FOUND

Public Class Methods

call(asset) click to toggle source

Call responder

@param [Object] asset

@return [Response]

@api private

# File lib/assets/responder.rb, line 21
def self.call(asset)
  new(asset).response
end
run(request, asset) click to toggle source

Run responder

@param [Request] request @param [Asset] asset

@return [Response] response

@api private

# File lib/assets/responder.rb, line 34
def self.run(request, asset)
  timestamp = request.if_modified_since

  responder =
    if timestamp && asset.fresh_at?(timestamp)
      NotModified
    else
      New
    end

  responder.call(asset)
end

Public Instance Methods

response() click to toggle source

Return response

@return [Response]

@api private

# File lib/assets/responder.rb, line 53
def response
  Response.new(status, headers, body)
end

Private Instance Methods

content_type() click to toggle source

Return content type header value

@return [String]

@api private

# File lib/assets/responder.rb, line 85
def content_type
  asset.mime.content_type
end
headers() click to toggle source

Return headers

@return [Hash]

@api private

# File lib/assets/responder.rb, line 75
def headers
  HEADERS.merge('Last-Modified' => asset.created_at.httpdate)
end
status() click to toggle source

Return status code

@return [Fixnum]

@api private

# File lib/assets/responder.rb, line 65
def status
  self.class::STATUS
end