This is the shortest "hello {NAME}" Ruby program I could make. It fits in a tweet!
- Save it as "config.ru"
gem install rack
- Run
rackup
- Visit http://localhost:9292/?name=NAME
This is the shortest "hello {NAME}" Ruby program I could make. It fits in a tweet!
gem install rack
rackup
run ->(e){ p=Hash[*e['QUERY_STRING'].split(/[&=]/)]; [200, {'Content-type'=>'text/html'}, ["Hello #{p['name']}!"]] } |
# Of course, the same thing in Sinatra is way shorter! But I went for minimum dependencies above. | |
require 'sinatra'; get('/') { "Hello #{params[:name]}!" } |
# 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 |
# 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 |