Skip to content

Instantly share code, notes, and snippets.

@MatteoRagni
Last active May 11, 2016 09:03
Show Gist options
  • Save MatteoRagni/33fd4ecc05d61dd15c8b to your computer and use it in GitHub Desktop.
Save MatteoRagni/33fd4ecc05d61dd15c8b to your computer and use it in GitHub Desktop.
Simple local webserver for pages testing
#!/usr/bin/ruby
# Local Server for site tests
%w|webrick optparse|.each do |gem|
raise LoadError, "Cannot load gem #{gem}" unless require gem
end
options = {}
# Parse options
optparse = OptionParser.new do|opts|
opts.banner = "Usage: server.rb [options]"
options[:port] = 3000
opts.on( '-p', '--port PORT', 'Port Number (default 3000)' ) do |port|
options[:port] = port
end
options[:docroot] = Dir.pwd
opts.on( '-d', '--doc_root PATH', 'Document Root (default current dir)' ) do |docroot|
puts docroot
options[:docroot] = docroot
end
options[:bind] = "localhost"
opts.on( '-b', '--bind HOST', 'Address to bind to (default localhost)' ) do |bind|
options[:bind] = bind
end
opts.on( '-h', '--help', 'Display this screen' ) do
puts opts
exit
end
end
optparse.parse!
# Initialize and start WEBrick
WEBrick::HTTPUtils::DefaultMimeTypes.store('rhtml', 'text/html')
server = WEBrick::HTTPServer.new(
:BindAddress => options[:bind],
:Port => options[:port],
:DocumentRoot => options[:docroot] )
trap "INT" do server.shutdown end
server.start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment