Sha256: f9e304d21c21c8171e984e7a47e15bb048a19093eaac81a9a8fe91bb8393c224
Contents?: true
Size: 1.94 KB
Versions: 1
Compression:
Stored size: 1.94 KB
Contents
require_relative '../generator/generator.rb' module Server class Dispatcher WEB_ROOT = 'web_root' DEV_ROOT = 'dev_root' def dispatch(request, response, server) path = request.path regenerate_files_if(path, server) return response.send_404 unless File.exist?(path) if !File.directory?(path) if path.include? '.php' response.send(200, execute_php(path, request.params)) else response.send_file path end else if File.exist?("#{path}/index.html") response.send_301 "#{path}/index.html" else response.send(200, list_dir(path, server)) end end end def list_dir(path, server) content = '' Dir.glob("#{path.gsub(WEB_ROOT, DEV_ROOT)}/*/").each do |f| f = f.gsub(DEV_ROOT, WEB_ROOT) regenerate_files_if("#{f}index.html", server) f_name = File.basename(f) f_path = "#{path}/#{f_name}".sub("#{WEB_ROOT}/", '') content += "<li><a href='#{f_path}'>#{f_name}</a></li>" if File.directory?(path) end "<!DOCTYPE html><html><head><body><h1>#{path}</h1><ul>#{content}</ul><a target='_blank' href='https://github.com/dennisvandehoef/easy-html-creator'>ehc on Github</a></body></html>" end def regenerate_files_if(path, server) return unless path.include? '.html' #no html? no reload -> no regenarate server.log "#######################" server.log "# #" server.log "# Renew all files #" server.log "# #" server.log "#######################" Generator::Generator.new.generate end def execute_php(path, params) params_s = '' params.each do |key, value| params_s += "#{key}=#{value[0]} " end executors = ['php', 'php-cgi', 'php-fpm'] cmd = "#{executors[0]} #{path} #{params_s}" STDERR.puts(cmd) %x[ #{cmd} ] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
easy_html_creator-1.2.0 | lib/server/dispatcher.rb |