Skip to content

Instantly share code, notes, and snippets.

@kyuden
Forked from Integralist/web-server.rb
Last active August 29, 2015 14:06
Show Gist options
  • Save kyuden/c5d9fb7c7a7c6095ee2f to your computer and use it in GitHub Desktop.
Save kyuden/c5d9fb7c7a7c6095ee2f to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
require "webrick"
=begin
WEBrick is a Ruby library that makes it easy to build an HTTP server with Ruby.
It comes with most installations of Ruby by default (it’s part of the standard library),
so you can usually create a basic web/HTTP server with only several lines of code.
The following code creates a generic WEBrick server on the local machine on port 1234,
shuts the server down if the process is interrupted (often done with Ctrl+C).
This example lets you call the URL's: "add" and "subtract" and pass through arguments to them
Example usage:
http://localhost:1234/ (this will show the specified error message)
http://localhost:1234/add?a=10&b=10
http://localhost:1234/subtract?a=10&b=9
=end
class MyNormalClass
def self.add (a, b)
a.to_i + b.to_i
end
def self.subtract (a, b)
a.to_i - b.to_i
end
end
class MyServlet < WEBrick::HTTPServlet::AbstractServlet
def do_GET (request, response)
if request.query["a"] && request.query["b"]
a = request.query["a"]
b = request.query["b"]
response.status = 200
response.content_type = "text/plain"
result = nil
case request.path
when "/add"
result = MyNormalClass.add(a, b)
when "/subtract"
result = MyNormalClass.subtract(a, b)
else
result = "No such method"
end
response.body = result.to_s + "\n"
else
response.status = 200
response.body = "You did not provide the correct parameters"
end
end
end
server = WEBrick::HTTPServer.new(:Port => 1234)
server.mount "/", MyServlet
trap("INT") {
server.shutdown
}
server.start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment