Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ruby e Sinatra - Faça mais com menos no desenvolvimento web

Ruby e Sinatra - Faça mais com menos no desenvolvimento web

Apresentação que fiz no InfoTech 2012 - Infórium em Belo Horizonte

More Decks by Gregório Chalinski Kusowski

Other Decks in Programming

Transcript

  1. Ruby “Matz” - @yukihiro_matz Criado em 1993 Alpha em 1994

    Criação do framework Rails em 2004 Rumo a versão 2.0!
  2. post '/cadastro/:tipo' do if params[:tipo] == 'juridica' @pessoa = PessoaJuridica.cria!

    params[:pessoa] else @pessoa = PessoaFisica.cria! params[:pessoa] end if @pessoa.criada_com_sucesso? "Cadastro realizado com sucesso." else "Verifique seus dados: #{@pessoa.erros}" end end Sinatra Parâmetros
  3. post '/cadastro/:tipo' do Sinatra if params[:tipo] == 'juridica' @pessoa =

    PessoaJuridica.cria! params[:pessoa] @pessoa = PessoaFisica.cria! params[:pessoa] Parâmetros
  4. App app.rb View contato.erb Resultado Sinatra <% ERB %> <h1><%=

    @contato %></h1> @contato = 'Gregório' erb :contato <h1>Gregório</h1>
  5. Sinatra <% ERB %> <ul> <% @contatos.each do |contato| %>

    <li><%= contato %></li> <% end %> </ul> <ul> <li>João</li> <li>Maria</li> <li>Paulo</li> </ul>
  6. Sinatra <% ERB %> <html> <head><title>Sinatra</title></head> <body> <div id="sidebar"> ...

    </div> <div id="main−content"> <%= yield %> </div> </body> </html> views/layout.erb
  7. Sinatra <% ERB %> views/layout.erb <html> <head><title>Sinatra</title></head> <body> <div id="sidebar">

    ... </div> <div id="main−content"> <%= yield %> </div> </body> </html>
  8. AppleScript Tell application "Keynote" show next end tell $ osacompile

    fonte.applescript $ osascript compilado.scpt
  9. Solução require 'sinatra' get '/show/:command' do %x[ osascript −e 'Tell

    application "Keynote" show #{params[:command]} end tell' ] end
  10. Ruboto - Com Java java_import org.apache.http.client.methods.HttpGet java_import org.apache.http.impl.client.DefaultHttpClient java_import org.apache.http.protocol.BasicHttpContext

    prefs = getPreferences(0) ip = prefs.getString("server_ip", nil) porta = prefs.getString("server_port" '4567') url = "http://#{ip}:#{porta}/show/next" DefaultHttpClient.new.execute(HttpGet.new(url), BasicHttpContext.new)
  11. ERB <div id="profile"> <div class="left column"> <div id="date"><%= print_date %></div>

    <div id="address"><%= current_user.address %></div> </div> <div class="right column"> <div id="email"><%= current_user.email %></div> <div id="bio"><%= current_user.bio %></div> </div> </div>
  12. require 'sinatra' get '/' do "Hello, world!" end require './app'

    run Sinatra::Aplication source 'https://rubygems.org' gem 'sinatra' Gemfile app.rb config.ru
  13. A B C D W8-A02 Criando aplicativos para Windows 8

    usando apenas HTML5 e JavaScript WP-B02 Desenvolvendo seu primeiro game para Windows Phone Sharepoint-C02 Desenvolvendo intranets e Portais internet com SharePoint 2010 IT-D01 Segurança da Informação - Engenharia Social e as Redes Sociais (02) Paulovich`s Juliano Nunes Silva Oliveira e Luciano Lima Thiago Cruz Soares e Hélio Sá Carine Alves InfoTech 2012 A seguir...