public
Last active

Shortest simplest sweetest web "hello {NAME}" in Ruby

  • Download Gist
config.ru
Ruby
1
run ->(e){ p=Hash[*e['QUERY_STRING'].split(/[&=]/)]; [200, {'Content-type'=>'text/html'}, ["Hello #{p['name']}!"]] }
readme.md
Markdown

This is the shortest "hello {NAME}" Ruby program I could make. It fits in a tweet!

  1. Save it as "config.ru"
  2. gem install rack
  3. Run rackup
  4. Visit http://localhost:9292/?name=NAME
sinatra-helloworld.rb
Ruby
1 2
# Of course, the same thing in Sinatra is way shorter! But I went for minimum dependencies above.
require 'sinatra'; get('/') { "Hello #{params[:name]}!" }
webrick-helloworld.rb
Ruby
1 2 3 4 5 6
# WEBrick equivalent, if we're limiting ourself to only Ruby stdlib and no dependencies
require 'webrick'
server = WEBrick::HTTPServer.new :Port => 8000
server.mount_proc('/') {|req, res| res.body = "Hello #{req.query['name']}!" }
trap('INT') {server.shutdown}
server.start
zomg-no-deps.rb
Ruby
1 2 3 4 5 6 7 8 9 10 11 12
# Just ruby, not even WEBrick!
# Submitted by https://github.com/reu
require "socket"
socket = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
socket.bind(Socket.pack_sockaddr_in(3000, "localhost"))
socket.listen(1)
loop do
connection = socket.accept[0]
connection.gets.match /name=(.+) (.+)/
connection.write "#{$2} 200 OK\nContent-Type: text/html\n\nHello #{$1}"
connection.close
end

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.