O documento fornece uma introdução ao framework web Sinatra para Ruby. Explica como instalar e configurar o Sinatra, criar rotas, usar modelos de dados e testes. O objetivo é mostrar o quão fácil é começar a desenvolver aplicações web com Sinatra usando um mínimo de código.
MOOC e Educação Aberta - Painel @ #cbie2013Ismar Silveira
Painel de Diretrizes e Políticas de IE no Brasil, realizado no #cbie2013, em 26/11/2013, na Unicamp. Fala de @ismarfrango sobre MOOC e a Comunidade de IE. Moderador: Nizam Omar. Participantes: Mauro Pequeno, Ismar Frango, Crediné Menezes.
Ferramentas Colaborativas da Web 2.0 Aplicadas na Educação Superior
Ismar Frango Silveira
Pollyana Notargiacomo Mustaro Edson Pinheiro Pimentel
Arnaldo R. de Aguiar Vallim Filho
Mini-curso realizado no CESOL 2009 em Fortaleza na UFC campos do PICI, ministrado por mim Targino Silveira.
Nesse mini-curso viso preparar as pessoas para iniciarem a fazer pequenas aplicações e ao terminarem o mini-curso já sabendo com incluir, editar, excluir, pesquisar registros; alterar templates, trabalhar com migrations e uma outra serie de procedimentos.
SBIE 2009 - Workshop de Modelos Pedagógicos para EAD
Um Sistema de Recomendação para Web 2.0 baseado en Redes Sociais de Aprendizagem e Recursos Educacionais Abertos
Pollyana Notargiacomo Mustaro
Edson Pinheiro Pimentel
Ismar Frango Silveira
MOOC e Educação Aberta - Painel @ #cbie2013Ismar Silveira
Painel de Diretrizes e Políticas de IE no Brasil, realizado no #cbie2013, em 26/11/2013, na Unicamp. Fala de @ismarfrango sobre MOOC e a Comunidade de IE. Moderador: Nizam Omar. Participantes: Mauro Pequeno, Ismar Frango, Crediné Menezes.
Ferramentas Colaborativas da Web 2.0 Aplicadas na Educação Superior
Ismar Frango Silveira
Pollyana Notargiacomo Mustaro Edson Pinheiro Pimentel
Arnaldo R. de Aguiar Vallim Filho
Mini-curso realizado no CESOL 2009 em Fortaleza na UFC campos do PICI, ministrado por mim Targino Silveira.
Nesse mini-curso viso preparar as pessoas para iniciarem a fazer pequenas aplicações e ao terminarem o mini-curso já sabendo com incluir, editar, excluir, pesquisar registros; alterar templates, trabalhar com migrations e uma outra serie de procedimentos.
SBIE 2009 - Workshop de Modelos Pedagógicos para EAD
Um Sistema de Recomendação para Web 2.0 baseado en Redes Sociais de Aprendizagem e Recursos Educacionais Abertos
Pollyana Notargiacomo Mustaro
Edson Pinheiro Pimentel
Ismar Frango Silveira
Essa apresentação passa uma visão de avaliação da linguagem Ruby, como Legibilidade, Redigibilidade, Confiabilidade.
Também cita características que enriquece a linguagem Ruby.
Essa apresentação passa uma visão de avaliação da linguagem Ruby, como Legibilidade, Redigibilidade, Confiabilidade.
Também cita características que enriquece a linguagem Ruby.
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/sinatra
sexta-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 sinatra
sexta-feira, 11 de fevereiro de 2011
14. O que eu preciso?
$ gem install sinatra
pronto =)
sexta-feira, 11 de fevereiro de 2011
21. Routes
http://sinatra-book.gittr.com/#routes
sexta-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 end
sexta-feira, 11 de fevereiro de 2011
23. HTTP Methods
http://sinatra-book.gittr.com/#http_methods
sexta-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 end
sexta-feira, 11 de fevereiro de 2011
25. Views
http://sinatra-book.gittr.com/#views
sexta-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 end
sexta-feira, 11 de fevereiro de 2011
28. 1 # erb
2 get "/" do
3 erb :index
4 end
sexta-feira, 11 de fevereiro de 2011
29. 1 # erb
2 get "/" do
3 erb :index
4 end
sexta-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 end
sexta-feira, 11 de fevereiro de 2011
33. Helpers
http://sinatra-book.gittr.com/#helpers
sexta-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 end
sexta-feira, 11 de fevereiro de 2011
35. Filters
http://sinatra-book.gittr.com/#filters
sexta-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 end
sexta-feira, 11 de fevereiro de 2011
37. Configuration
http://sinatra-book.gittr.com/#configuration
sexta-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 end
sexta-feira, 11 de fevereiro de 2011
39. Models
http://sinatra-book.gittr.com/#models
sexta-feira, 11 de fevereiro de 2011
40. ActiveRecord
$ gem install activerecord
sexta-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 end
sexta-feira, 11 de fevereiro de 2011
42. Testing
http://www.sinatrarb.com/testing.html
sexta-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 end
sexta-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 end
sexta-feira, 11 de fevereiro de 2011