class Propshaft::Server
Constants
- VARY
Public Class Methods
new(assembly)
click to toggle source
# File lib/propshaft/server.rb, line 5 def initialize(assembly) @assembly = assembly end
Public Instance Methods
call(env)
click to toggle source
# File lib/propshaft/server.rb, line 9 def call(env) path, digest = extract_path_and_digest(env) if (asset = @assembly.load_path.find(path)) && asset.fresh?(digest) compiled_content = @assembly.compilers.compile(asset) [ 200, { Rack::CONTENT_LENGTH => compiled_content.length.to_s, Rack::CONTENT_TYPE => asset.content_type.to_s, VARY => "Accept-Encoding", Rack::ETAG => asset.digest, Rack::CACHE_CONTROL => "public, max-age=31536000, immutable" }, [ compiled_content ] ] else [ 404, { Rack::CONTENT_TYPE => "text/plain", Rack::CONTENT_LENGTH => "9" }, [ "Not found" ] ] end end
inspect()
click to toggle source
# File lib/propshaft/server.rb, line 31 def inspect self.class.inspect end
Private Instance Methods
extract_path_and_digest(env)
click to toggle source
# File lib/propshaft/server.rb, line 36 def extract_path_and_digest(env) full_path = Rack::Utils.unescape(env["PATH_INFO"].to_s.sub(/^\//, "")) Propshaft::Asset.extract_path_and_digest(full_path) end