Class: SingleServing::Server
- Inherits:
-
Object
- Object
- SingleServing::Server
- Defined in:
- lib/singleserving/server.rb
Instance Method Summary collapse
Instance Method Details
#get_ext(file) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/singleserving/server.rb', line 6 def get_ext(file) # Not a great way to get the extension. # If there is no '.' character it will return the entire string # which is fine if we are looking it up in the DefaultMimeTypes # hash, because we probablly won't get a match. WEBrick::HTTPUtils::DefaultMimeTypes[file[/([^\.]+$)/]] || "application/octet-stream" end |
#serve(file, port = 9000) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/singleserving/server.rb', line 14 def serve(file, port=9000) server = TCPServer.open(port) # Socket to listen on port 2000 client, sock_addr = server.accept # Wait for a client to connect # We don't care about the incoming headers, we return the file every time #puts client.readline #raw_header = "" #while line = client.readline # break if /\A(\r\n|\n)\z/om =~ line # raw_header << line #end client.puts "HTTP/100.0 200 OK\r" client.puts "Connection: Keep-Alive\r" client.puts "Content-Type: #{get_ext(file)}\r" client.puts "Server: SingleServe\r" client.puts "Content-Disposition: filename=#{File.basename file}\r" client.puts "Content-Length: #{File.size file}\r" client.puts "\r" client.print File.open(file, 'r').read client.close end |