class FileServer
Constants
- MIME_TYPES
Public Instance Methods
call(env, asset_dir)
click to toggle source
# File lib/railz_lite/controllers/static.rb, line 44 def call(env, asset_dir) res = Rack::Response.new file_name = requested_file_name(env, asset_dir) if File.exist?(file_name) serve_file(file_name, res) else res.status = 404 res.write('File not found') end [res.status, res.headers, res.body] end
Private Instance Methods
requested_file_name(env, asset_dir)
click to toggle source
# File lib/railz_lite/controllers/static.rb, line 67 def requested_file_name(env, asset_dir) req = Rack::Request.new(env) dir = Dir.pwd path = req.path filename = File.basename(path) File.join(dir, asset_dir, filename) end
serve_file(file_name, res)
click to toggle source
# File lib/railz_lite/controllers/static.rb, line 59 def serve_file(file_name, res) extension = File.extname(file_name) content_type = MIME_TYPES[extension] file = File.read(file_name) res['Content-type'] = content_type res.write(file) end