Немного более интересным примером является HTTP сервер:
require "http/server"
server = HTTP::Server.new(8080) do |context|
context.response.content_type = "text/plain"
context.response.print "Hello world! The time is #{Time.now}"
end
puts "Listening on http://0.0.0.0:8080"
server.listen
Приведенный код выше будет иметь смысл только если вы прочитаете всю документацию, но вы уже можете кое-чему научиться.
Вы можете подключить код из других файлов:
require "http/server"
Вы можете определить локальную переменную без необходимости указывать ее тип:
server = HTTP::Server.new ...
Ваша программа вызывает методы (или посылает сообщения) объектам.
HTTP::Server.new(8000) ...
...
Time.now
...
puts "Listening on http://0.0.0.0:8080"
...
server.listen
Вы можете использовать блоки кода, или просто блоки, которые представляют собой очень удобный способ повторного использования кода и дают возможность получить некоторые особенности из мира функционального программирования:
HTTP::Server.new(8080) do |context|
...
end
Вы легко можете создавать строки со "встроенным" контентом, который также называется интерполяция строк. Язык также предоставляет другой синтаксис для создания arrays(массивов), hashes(хэшей), ranges(диапазонов), tuples(тьюплов/кортежей) и прочего:
"Hello world! The time is #{Time.now}"