-
Notifications
You must be signed in to change notification settings - Fork 8
/
image_server.rb
36 lines (27 loc) · 996 Bytes
/
image_server.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
require 'rubygems'
require 'lib/send_file'
require 'lib/middleware/cache_purge'
require 'lib/middleware/logged_request'
require 'lib/middleware/remote_proxy'
require 'lib/middleware/server_name'
require 'lib/middleware/favicon_filter'
require 'lib/logger_ext'
require 'lib/transformations'
require 'lib/svg_generator'
require 'lib/image_variant_generator'
require 'lib/image'
require 'config/env'
class ImageServer
include SendFile
NotFound = [404, {'Content-Type' => 'text/html'}, ['<h1>File not Found</h1>']].freeze
def call(env)
Logger.current.info 'Attempting to generate missing file...'
[SvgGenerator, ImageVariantGenerator].each do |generator|
if image = generator.from_url(ORIGIN_SERVER, env['PATH_INFO'] + (env['QUERY_STRING'].empty? ? '' : "?#{env['QUERY_STRING']}"))
return send_file(image)
end
end
Logger.current.info 'No generator available'
NotFound
end
end