Sinatra
description
Transcript of Sinatra
![Page 1: Sinatra](https://reader035.fdocuments.us/reader035/viewer/2022062501/56815ece550346895dcd5546/html5/thumbnails/1.jpg)
SinatraBy: Maksim
Surguy & Cesar Acosta
require 'sinatra‘get ‘/' do "Hello World!" end
![Page 2: Sinatra](https://reader035.fdocuments.us/reader035/viewer/2022062501/56815ece550346895dcd5546/html5/thumbnails/2.jpg)
What is it ?Web application framework in RubyDSL* for defining RESTful HTTP actionsFastFun!
What it is not ?Not RailsNot MVC
*Domain specific Language
![Page 3: Sinatra](https://reader035.fdocuments.us/reader035/viewer/2022062501/56815ece550346895dcd5546/html5/thumbnails/3.jpg)
How does it work ? gem install sinatra
vi my_app.rb
set :port, 3000require ‘sinatra’get ‘/’ do
‘Hello World’end
ruby my_app.rb
![Page 4: Sinatra](https://reader035.fdocuments.us/reader035/viewer/2022062501/56815ece550346895dcd5546/html5/thumbnails/4.jpg)
Gem ShotgunGems More CondensedChanges to the App require to restart the server
gem install shotgunRun => shotgun my_app.rb
![Page 5: Sinatra](https://reader035.fdocuments.us/reader035/viewer/2022062501/56815ece550346895dcd5546/html5/thumbnails/5.jpg)
Got Parameters ? vi my_app2.rb
require ‘sinatra’set :port, 3000
get '/hello/:name' do "Hello #{params[:name]}"end
ruby my_app2.rb
![Page 6: Sinatra](https://reader035.fdocuments.us/reader035/viewer/2022062501/56815ece550346895dcd5546/html5/thumbnails/6.jpg)
Got REST ? get '/' do .. show something .. end
post '/' do .. create something .. end
put '/' do .. update something .. end
delete '/' do .. annihilate something .. end options '/' do .. appease something .. end
![Page 7: Sinatra](https://reader035.fdocuments.us/reader035/viewer/2022062501/56815ece550346895dcd5546/html5/thumbnails/7.jpg)
Got views?Supports practically every template engine in Ruby:
HAMLERBErubisBuilderNokogiriSassLessLiquid
And many, many more !!! (http://www.sinatrarb.com/intro.html)
require ‘haml‘get ‘/' do haml :indexend Renders ./views/index.haml
![Page 8: Sinatra](https://reader035.fdocuments.us/reader035/viewer/2022062501/56815ece550346895dcd5546/html5/thumbnails/8.jpg)
What is good for ?APIsWeb services (fast !!!)Quick minimal applicationsLean web development (Largely static sites with some dynamic content)Deploy on Heroku!
![Page 9: Sinatra](https://reader035.fdocuments.us/reader035/viewer/2022062501/56815ece550346895dcd5546/html5/thumbnails/9.jpg)
In the wild… (Used by)HerokuGitHub servicesEngine YardApartment TherapyMany Others
More examples at : http://www.sinatrarb.com/wild.html
![Page 10: Sinatra](https://reader035.fdocuments.us/reader035/viewer/2022062501/56815ece550346895dcd5546/html5/thumbnails/10.jpg)
Resourceshttp://www.sinatrarb.comhttp://sinatra-book.gittr.com/http://bcc2010-sinatra.heroku.com/http://empty-journey-91.heroku.com/ http://net.tutsplus.com/tutorials/ruby/singin
g-with-sinatra/ http://www.slideshare.net/oisin/simple-web-
services-with-sinatra-and-heroku-6882369 http://sinatra-book-contrib.com
![Page 11: Sinatra](https://reader035.fdocuments.us/reader035/viewer/2022062501/56815ece550346895dcd5546/html5/thumbnails/11.jpg)
Thanks!