Module: Imagery::SendFile
- Included in:
- RemoteProxy, Server
- Defined in:
- lib/imagery/send_file.rb
Constant Summary
- CopyHeaders =
['Content-Type', 'Cache-Control', 'Last-Modified', 'ETag']
- ContentTypes =
{ '.gif' => 'image/gif', '.jpg' => 'image/jpeg', '.jpeg' => 'image/jpeg', '.png' => 'image/png', '.bmp' => 'image/x-bitmap', '.svg' => 'image/svg+xml' }
Instance Method Summary (collapse)
Instance Method Details
- (Object) send_file(file)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/imagery/send_file.rb', line 16 def send_file(file) headers = {'Content-Length' => file.content.length.to_s} if file.respond_to?(:headers) CopyHeaders.each do |key| headers[key] = file.headers[key] if file.headers.has_key?(key) end end headers['ETag'] ||= Digest::MD5.hexdigest(file.content) headers['Cache-Control'] ||= 'public, max-age=31557600' headers['Last-Modified'] ||= Time.new.httpdate [200, headers, [file.content]] end |