Top Banner
Sinatra Primeiros passos por Jésus Lopes @jtadeulopes #zigottolabs sexta-feira, 11 de fevereiro de 2011
47

Sinatra - Primeiros Passos

Jun 20, 2015

Download

Technology

Zigotto labs em 11 de Fevereiro de 2011
Por Jésus Lopes
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Sinatra - Primeiros Passos

SinatraPrimeiros passos

por Jésus Lopes@jtadeulopes#zigottolabs

sexta-feira, 11 de fevereiro de 2011

Page 2: Sinatra - Primeiros Passos

#zigottolabssexta-feira, 11 de fevereiro de 2011

Page 3: Sinatra - Primeiros Passos

ruby

sexta-feira, 11 de fevereiro de 2011

Page 4: Sinatra - Primeiros Passos

ruby

web

sexta-feira, 11 de fevereiro de 2011

Page 5: Sinatra - Primeiros Passos

ruby

frameworkweb

sexta-feira, 11 de fevereiro de 2011

Page 6: Sinatra - Primeiros Passos

ruby

frameworkweb

development

sexta-feira, 11 de fevereiro de 2011

Page 7: Sinatra - Primeiros Passos

ruby

frameworkweb

developmentapplications

sexta-feira, 11 de fevereiro de 2011

Page 8: Sinatra - Primeiros Passos

ruby

frameworkweb

developmentapplications

open-source

sexta-feira, 11 de fevereiro de 2011

Page 9: Sinatra - Primeiros Passos

e o Rails?

sexta-feira, 11 de fevereiro de 2011

Page 10: Sinatra - Primeiros Passos

Ele é o mais utilizado, mas não é o único!

sexta-feira, 11 de fevereiro de 2011

Page 11: Sinatra - Primeiros Passos

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

Page 12: Sinatra - Primeiros Passos

O que eu preciso?

sexta-feira, 11 de fevereiro de 2011

Page 13: Sinatra - Primeiros Passos

O que eu preciso?

$ gem install sinatra

sexta-feira, 11 de fevereiro de 2011

Page 14: Sinatra - Primeiros Passos

O que eu preciso?

pronto =)

$ gem install sinatra

sexta-feira, 11 de fevereiro de 2011

Page 15: Sinatra - Primeiros Passos

Primeiro exemplo

sexta-feira, 11 de fevereiro de 2011

Page 16: Sinatra - Primeiros Passos

Primeiro exemplo

sexta-feira, 11 de fevereiro de 2011

Page 17: Sinatra - Primeiros Passos

Primeiro exemplo

Mínimo de esforço, ok?

sexta-feira, 11 de fevereiro de 2011

Page 18: Sinatra - Primeiros Passos

1 # my_app.rb2 require "rubygems"3 require "sinatra"4 56 get "/" do7 "#zigottolabs"8 end

sexta-feira, 11 de fevereiro de 2011

Page 19: Sinatra - Primeiros Passos

$ ruby my_app.rb

sexta-feira, 11 de fevereiro de 2011

Page 20: Sinatra - Primeiros Passos

$ ruby my_app.rb

sexta-feira, 11 de fevereiro de 2011

Page 21: Sinatra - Primeiros Passos

Routeshttp://sinatra-book.gittr.com/#routes

sexta-feira, 11 de fevereiro de 2011

Page 22: Sinatra - Primeiros Passos

1 # simple routes 2 3 get "/contact" do 4 "http://www.zigotto.com" 5 end 6 7 # named parameters 8 9 get "/url/:username" do10 # GET /url/jtadeulopes11 params[:username] # => "jtadeulopes"12 end

sexta-feira, 11 de fevereiro de 2011

Page 23: Sinatra - Primeiros Passos

HTTP Methodshttp://sinatra-book.gittr.com/#http_methods

sexta-feira, 11 de fevereiro de 2011

Page 24: Sinatra - Primeiros Passos

1 get "/" do 2 "show..." 3 end 4 5 post "/" do 6 "create something..." 7 end 8 9 put "/" do10 "update something..."11 end12 13 delete "/" do14 "delete..."15 end

sexta-feira, 11 de fevereiro de 2011

Page 25: Sinatra - Primeiros Passos

Viewshttp://sinatra-book.gittr.com/#views

sexta-feira, 11 de fevereiro de 2011

Page 26: Sinatra - Primeiros Passos

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 end

sexta-feira, 11 de fevereiro de 2011

Page 27: Sinatra - Primeiros Passos

Mínimo esforço?

sexta-feira, 11 de fevereiro de 2011

Page 28: Sinatra - Primeiros Passos

1 # erb2 get "/" do3 erb :index4 end

sexta-feira, 11 de fevereiro de 2011

Page 29: Sinatra - Primeiros Passos

1 # erb2 get "/" do3 erb :index4 end

sexta-feira, 11 de fevereiro de 2011

Page 30: Sinatra - Primeiros Passos

1 # erb2 get "/" do3 erb :index4 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

Page 31: Sinatra - Primeiros Passos

1 # erb2 get "/" do3 erb :index4 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

Page 32: Sinatra - Primeiros Passos

1 # haml 2 # render /views/index.haml 3 4 get "/" do 5 haml :index 6 end 7 8 # sass 9 # render /views/stylesheet.sass10 11 get "/stylesheet.css" do12 content_type "text/css", :charset => "utf-8"13 sass :stylesheet14 end

sexta-feira, 11 de fevereiro de 2011

Page 33: Sinatra - Primeiros Passos

Helpershttp://sinatra-book.gittr.com/#helpers

sexta-feira, 11 de fevereiro de 2011

Page 34: Sinatra - Primeiros Passos

1 helpers do 2 3 def profile_url(username) 4 "http://twitter.com/#{username}" 5 end 6 7 end 8 9 get "/url/:username" do10 # GET /url/jtadeulopes11 profile_url(params[:username])12 end

sexta-feira, 11 de fevereiro de 2011

Page 35: Sinatra - Primeiros Passos

Filtershttp://sinatra-book.gittr.com/#filters

sexta-feira, 11 de fevereiro de 2011

Page 36: Sinatra - Primeiros Passos

1 before do 2 "this code will run before each request..." 3 end 4 5 get "/" do 6 "...." 7 end 8 9 after do10 "this code will run after each request..."11 end

sexta-feira, 11 de fevereiro de 2011

Page 37: Sinatra - Primeiros Passos

Configurationhttp://sinatra-book.gittr.com/#configuration

sexta-feira, 11 de fevereiro de 2011

Page 38: Sinatra - Primeiros Passos

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 do10 erb :"404"11 end12 error do13 erb :"500"14 end15 end16 17 # multiple18 configure :development, :test do19 set :domain, "http://localhost:4567"20 end21 22 # GET /23 get "/" do24 "my domain is #{options.domain}"25 end

sexta-feira, 11 de fevereiro de 2011

Page 39: Sinatra - Primeiros Passos

Modelshttp://sinatra-book.gittr.com/#models

sexta-feira, 11 de fevereiro de 2011

Page 40: Sinatra - Primeiros Passos

ActiveRecord

$ gem install activerecord

sexta-feira, 11 de fevereiro de 2011

Page 41: Sinatra - Primeiros Passos

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 database16 class Vehicle < ActiveRecord::Base17 end18 19 get "/" do20 @vehicles = Vehicle.all21 erb :index22 end

sexta-feira, 11 de fevereiro de 2011

Page 42: Sinatra - Primeiros Passos

Testinghttp://www.sinatrarb.com/testing.html

sexta-feira, 11 de fevereiro de 2011

Page 43: Sinatra - Primeiros Passos

1 # my_app_test.rb 2 require './my_app' 3 require 'test/unit' 4 require 'rack/test' 5 6 class MyAppTest < Test::Unit::TestCase 7 include Rack::Test::Methods 8 9 def app10 Sinatra::Application11 end12 13 def test_my_contact14 get '/contact'15 assert_equal 'http://www.zigotto.com', last_response.body16 end17 18 def test_with_params19 get '/url/jtadeulopes'20 assert_equal 'http://twitter.com/jtadeulopes', last_response.body21 end22 23 end

Test::Unit$ gem install rack-test

sexta-feira, 11 de fevereiro de 2011

Page 44: Sinatra - Primeiros Passos

1 # my_app_spec.rb 2 require './my_app' 3 require 'rack/test' 4 require 'rspec' 5 6 set :environment, :test 7 8 describe 'MyApp' do 9 include Rack::Test::Methods10 11 def app12 Sinatra::Application13 end14 15 it "should return url of contact" do16 get '/contact'17 last_response.should be_ok18 last_response.body.should == "http://www.zigotto.com"19 end20 21 it "should return twitter url" do22 get "/url/jtadeulopes"23 last_response.should be_ok24 last_response.body.should == "http://twitter.com/jtadeulopes"25 end26 27 end

Rspec$ gem install rspec

sexta-feira, 11 de fevereiro de 2011

Page 45: Sinatra - Primeiros Passos

Live coding!

sexta-feira, 11 de fevereiro de 2011

Page 46: Sinatra - Primeiros Passos

Obrigado!

sexta-feira, 11 de fevereiro de 2011

Page 47: Sinatra - Primeiros Passos

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