Sinatra - Primeiros Passos

  • 1,284 views
Uploaded on

Zigotto labs em 11 de Fevereiro de 2011 …

Zigotto labs em 11 de Fevereiro de 2011
Por Jésus Lopes

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,284
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
15
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Sinatra Primeiros passos por Jésus Lopes #zigottolabs @jtadeulopessexta-feira, 11 de fevereiro de 2011
  • 2. #zigottolabssexta-feira, 11 de fevereiro de 2011
  • 3. rubysexta-feira, 11 de fevereiro de 2011
  • 4. web rubysexta-feira, 11 de fevereiro de 2011
  • 5. framework web rubysexta-feira, 11 de fevereiro de 2011
  • 6. framework web ruby developmentsexta-feira, 11 de fevereiro de 2011
  • 7. framework web ruby applications developmentsexta-feira, 11 de fevereiro de 2011
  • 8. framework web ruby applications development open-sourcesexta-feira, 11 de fevereiro de 2011
  • 9. e o Rails?sexta-feira, 11 de fevereiro de 2011
  • 10. Ele é o mais utilizado, mas não é o único!sexta-feira, 11 de fevereiro de 2011
  • 11. Sinatra “Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort” https://github.com/sinatra/sinatrasexta-feira, 11 de fevereiro de 2011
  • 12. O que eu preciso?sexta-feira, 11 de fevereiro de 2011
  • 13. O que eu preciso? $ gem install sinatrasexta-feira, 11 de fevereiro de 2011
  • 14. O que eu preciso? $ gem install sinatra pronto =)sexta-feira, 11 de fevereiro de 2011
  • 15. Primeiro exemplosexta-feira, 11 de fevereiro de 2011
  • 16. Primeiro exemplosexta-feira, 11 de fevereiro de 2011
  • 17. Primeiro exemplo Mínimo de esforço, ok?sexta-feira, 11 de fevereiro de 2011
  • 18. 1 # my_app.rb 2 require "rubygems" 3 require "sinatra" 4 5 6 get "/" do 7 "#zigottolabs" 8 endsexta-feira, 11 de fevereiro de 2011
  • 19. $ ruby my_app.rbsexta-feira, 11 de fevereiro de 2011
  • 20. $ ruby my_app.rbsexta-feira, 11 de fevereiro de 2011
  • 21. Routes http://sinatra-book.gittr.com/#routessexta-feira, 11 de fevereiro de 2011
  • 22. 1 # simple routes 2 3 get "/contact" do 4 "http://www.zigotto.com" 5 end 6 7 # named parameters 8 9 get "/url/:username" do 10 # GET /url/jtadeulopes 11 params[:username] # => "jtadeulopes" 12 endsexta-feira, 11 de fevereiro de 2011
  • 23. HTTP Methods http://sinatra-book.gittr.com/#http_methodssexta-feira, 11 de fevereiro de 2011
  • 24. 1 get "/" do 2 "show..." 3 end 4 5 post "/" do 6 "create something..." 7 end 8 9 put "/" do 10 "update something..." 11 end 12 13 delete "/" do 14 "delete..." 15 endsexta-feira, 11 de fevereiro de 2011
  • 25. Views http://sinatra-book.gittr.com/#viewssexta-feira, 11 de fevereiro de 2011
  • 26. 1 get "/" do 2 <html> 3 <head> 4 <title>Sinatra</title> 5 </head> 6 <body> 7 <p>Primeiros passos com sinatra</p> 8 </body> 9 </html> 10 endsexta-feira, 11 de fevereiro de 2011
  • 27. Mínimo esforço?sexta-feira, 11 de fevereiro de 2011
  • 28. 1 # erb 2 get "/" do 3 erb :index 4 endsexta-feira, 11 de fevereiro de 2011
  • 29. 1 # erb 2 get "/" do 3 erb :index 4 endsexta-feira, 11 de fevereiro de 2011
  • 30. 1 # erb 2 get "/" do 3 erb :index 4 end 1 <!-- /views/index.erb --> 2 <html> 3 <head> 4 <title>Sinatra</title> 5 </head> 6 <body> 7 <p>Primeiros passos com sinatra</p> 8 </body> 9 </html>sexta-feira, 11 de fevereiro de 2011
  • 31. 1 # erb 2 get "/" do 3 erb :index 4 end 1 <!-- /views/index.erb --> 2 <html> 3 <head> 4 <title>Sinatra</title> 5 </head> 6 <body> 7 <p>Primeiros passos com sinatra</p> 8 </body> 9 </html>sexta-feira, 11 de fevereiro de 2011
  • 32. 1 # haml 2 # render /views/index.haml 3 4 get "/" do 5 haml :index 6 end 7 8 # sass 9 # render /views/stylesheet.sass 10 11 get "/stylesheet.css" do 12 content_type "text/css", :charset => "utf-8" 13 sass :stylesheet 14 endsexta-feira, 11 de fevereiro de 2011
  • 33. Helpers http://sinatra-book.gittr.com/#helperssexta-feira, 11 de fevereiro de 2011
  • 34. 1 helpers do 2 3 def profile_url(username) 4 "http://twitter.com/#{username}" 5 end 6 7 end 8 9 get "/url/:username" do 10 # GET /url/jtadeulopes 11 profile_url(params[:username]) 12 endsexta-feira, 11 de fevereiro de 2011
  • 35. Filters http://sinatra-book.gittr.com/#filterssexta-feira, 11 de fevereiro de 2011
  • 36. 1 before do 2 "this code will run before each request..." 3 end 4 5 get "/" do 6 "...." 7 end 8 9 after do 10 "this code will run after each request..." 11 endsexta-feira, 11 de fevereiro de 2011
  • 37. Configuration http://sinatra-book.gittr.com/#configurationsexta-feira, 11 de fevereiro de 2011
  • 38. 1 # all environments 2 configure do 3 "..." 4 end 5 6 # production 7 configure :production do 8 set :domain, "http://www.site.com" 9 not_found do 10 erb :"404" 11 end 12 error do 13 erb :"500" 14 end 15 end 16 17 # multiple 18 configure :development, :test do 19 set :domain, "http://localhost:4567" 20 end 21 22 # GET / 23 get "/" do 24 "my domain is #{options.domain}" 25 endsexta-feira, 11 de fevereiro de 2011
  • 39. Models http://sinatra-book.gittr.com/#modelssexta-feira, 11 de fevereiro de 2011
  • 40. ActiveRecord $ gem install activerecordsexta-feira, 11 de fevereiro de 2011
  • 41. 1 # my_app.rb 2 require "rubygems" 3 require "sinatra" 4 require "active_record" 5 6 # connection settings 7 ActiveRecord::Base.establish_connection( 8 :adapter => mysql2, 9 :host => "localhost", 10 :username => "my_user", 11 :password => "my_password", 12 :database => "app_development" 13 ) 14 15 # you already have a vehicles table in your database 16 class Vehicle < ActiveRecord::Base 17 end 18 19 get "/" do 20 @vehicles = Vehicle.all 21 erb :index 22 endsexta-feira, 11 de fevereiro de 2011
  • 42. Testing http://www.sinatrarb.com/testing.htmlsexta-feira, 11 de fevereiro de 2011
  • 43. Test::Unit 1 # my_app_test.rb 2 require ./my_app $ gem install rack-test 3 require test/unit 4 require rack/test 5 6 class MyAppTest < Test::Unit::TestCase 7 include Rack::Test::Methods 8 9 def app 10 Sinatra::Application 11 end 12 13 def test_my_contact 14 get /contact 15 assert_equal http://www.zigotto.com, last_response.body 16 end 17 18 def test_with_params 19 get /url/jtadeulopes 20 assert_equal http://twitter.com/jtadeulopes, last_response.body 21 end 22 23 endsexta-feira, 11 de fevereiro de 2011
  • 44. 1 2 # my_app_spec.rb require ./my_app Rspec 3 require rack/test $ gem install rspec 4 require rspec 5 6 set :environment, :test 7 8 describe MyApp do 9 include Rack::Test::Methods 10 11 def app 12 Sinatra::Application 13 end 14 15 it "should return url of contact" do 16 get /contact 17 last_response.should be_ok 18 last_response.body.should == "http://www.zigotto.com" 19 end 20 21 it "should return twitter url" do 22 get "/url/jtadeulopes" 23 last_response.should be_ok 24 last_response.body.should == "http://twitter.com/jtadeulopes" 25 end 26 27 endsexta-feira, 11 de fevereiro de 2011
  • 45. Live coding!sexta-feira, 11 de fevereiro de 2011
  • 46. Obrigado!sexta-feira, 11 de fevereiro de 2011
  • 47. Links • http://www.sinatrarb.com • https://github.com/sinatra/sinatra • http://adam.blog.heroku.com/ • http://sinatra-book.gittr.com • http://www.sinatrarb.com • http://www.slideshare.net/cpjolicoeur/sinatra-ruby-framework-presentation • http://railsforkids.com/sexta-feira, 11 de fevereiro de 2011