Skip to content

Instantly share code, notes, and snippets.

@aminin
Last active December 10, 2015 06:39
Show Gist options
  • Select an option

  • Save aminin/4396088 to your computer and use it in GitHub Desktop.

Select an option

Save aminin/4396088 to your computer and use it in GitHub Desktop.
Тестовое приложение на Синатре
# A sample Gemfile
source "https://rubygems.org"
gem "sinatra"
gem "sinatra-synchrony"
gem "thin"
# -*- encoding: utf-8 -*-
# Запуск: ruby light.rb -s thin
require 'sinatra'
require 'sinatra/synchrony'
get '/' do
puts 'Привет!'
'Привет!'
end
get '/e500' do
puts '500'
halt 500, '500-я внутренняя ошибка сервера'
end
get '/e502' do
puts '502'
halt 502, 'Ошибка 502 негодный шлюз'
end
get '/e503' do
puts '503'
halt 503, 'Ошибка 503 хорош долбить! - сервер недоступен'
end
get '/e400' do
puts '400'
halt 400, 'Ошибка 400 негодный запрос'
end
get '/e403' do
puts '403'
halt 403, 'Ошибка 403 сюда нельзя'
end
get '/e404' do
puts '403'
halt 404, 'Ошибка 404 нет такой страницы'
end
get '/slowpoke' do
content_type 'text/html'
wait_for = (rand * 9).round(2) # ждать от 0 до 4 секунд
stream(:keep_open) do |out|
out << "Я медленная страница.<br />\n"
out << "Подожди #{wait_for} секунд.<br />\n"
EM.add_timer(wait_for) do
out << "Готово!"
out.close
puts 'slowget'
end
end
end
post '/slowpoke' do
content_type 'text/html'
wait_for = (rand * 9).round(2) # ждать от 0 до 4 секунд
stream(:keep_open) do |out|
out << "Я медленная страница.<br />\n"
out << "Подожди #{wait_for} секунд.<br />\n"
EM.add_timer(wait_for) do
out << "Готово!"
out.close
puts 'slowpost'
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment