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 rackrackup| 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 |