онстантин часто выступает на конференциях с рассказами на совершенно разные и очень полезные Ruby-темы, но мы рады, что нам удалось сохранить изначальную тему выступления — Константин будет рассказывать именно о Sinatra: о истории, текущем состоянии и будущем фреймворка.
48. class MyApp < Sinatra::Base
get /js(on)?/, :provides => "json" do
pass unless params[:pwd] == "foo"
"Hello World".to_json
end
get "*" do
"wrong password, probably"
end
end
58. Live release at RubyConf in New Orleans
Better HTTP compatibility
Better security (rack-protection)
Stream/asynchronous API, finally!
59. get '/' do
stream do |out|
out << "It's gonna be legen -n"
sleep 0.5
out << " (wait for it) n"
sleep 1
out << "- dary!n"
end
end
60. connections = []
get '/' do
stream(:keep_open) do |out|
connections << out
end
end
post '/' do
connections.each do |out|
out << params[:message]
end
"message sent"
end
62. Who's using it?
Travis CI, Integrity, CI Joe
Picky, Resque, Gollum
Heroku, Github, Engine Yard
Songbird, University of Lausanne, Stanford
Apple, LinkedIn, British Government, BBC
...