Module: Veewee::Provider::Core::Helper::Web
- Included in:
- Box
- Defined in:
- lib/veewee/provider/core/helper/web.rb
Instance Method Summary collapse
-
#allow_for_http_request(filename, options) ⇒ Object
start in new thread.
- #server_for_http_request(filename, options = {:timeout => 10, :web_dir => "", :port => 7125, :threaded => false}) ⇒ Object
-
#wait_for_http_request(filename, options) ⇒ Object
original blocking.
Instance Method Details
#allow_for_http_request(filename, options) ⇒ Object
start in new thread
49 50 51 52 |
# File 'lib/veewee/provider/core/helper/web.rb', line 49 def allow_for_http_request(filename,) # start in new thread s = server_for_http_request(filename,.merge({:threaded => true})) Thread.new { s.start } end |
#server_for_http_request(filename, options = {:timeout => 10, :web_dir => "", :port => 7125, :threaded => false}) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/veewee/provider/core/helper/web.rb', line 54 def server_for_http_request(filename,={:timeout => 10, :web_dir => "", :port => 7125, :threaded => false}) # Calculate the OS equivalent of /dev/null , on windows this is NUL: # http://www.ruby-forum.com/topic/115472 fn = test(?e, '/dev/null') ? '/dev/null' : 'NUL:' webrick_logger=WEBrick::Log.new(fn, WEBrick::Log::INFO) web_dir=[:web_dir] filename=filename s= ::WEBrick::HTTPServer.new( :Port => [:port], :Logger => webrick_logger, :AccessLog => webrick_logger ) mount_filename = filename.start_with?('/') ? filename : "/#{filename}" env.logger.debug("mounting file #{mount_filename}") s.mount("#{mount_filename}", Veewee::Provider::Core::Helper::Servlet::FileServlet,File.join(web_dir,filename),ui,[:threaded]) trap("INT"){ s.shutdown ui.info "Stopping webserver" exit } s end |
#wait_for_http_request(filename, options) ⇒ Object
original blocking
44 45 46 47 |
# File 'lib/veewee/provider/core/helper/web.rb', line 44 def wait_for_http_request(filename,) # original blocking s = server_for_http_request(filename,) s.start end |