fast prototyping with sinatra sequel w2tags, when you need to prototype sometime it need framework that works simple complete and less typing, w2tags use HAML like syntax to speed up the prototyping
10. require 'rubygems'
require 'sequel'
require 'sinatra'
DB = Sequel.connect(....)
class Entry < Sequel::Model
end
get '/' do
@recs = Entry.all
erb :index index.erb
end
<h1>Entry List</h1>
<% @recs.each do |r| %>
<%= r.title %>
<br/>
<% end %>
11. require 'rubygems'
require 'sequel'
require 'sinatra'
DB = Sequel.connect(....)
Model
class Entry < Sequel::Model
end
get '/' do
@recs = Entry.all
erb :index index.erb
end
<h1>Entry List</h1>
<% @recs.each do |r| %>
<%= r.title %>
<br/>
<% end %>
12. require 'rubygems'
require 'sequel'
require 'sinatra'
DB = Sequel.connect(....)
Model
class Entry < Sequel::Model
end
get '/' do
View
@recs = Entry.all
erb :index index.erb
end
<h1>Entry List</h1>
<% @recs.each do |r| %>
<%= r.title %>
<br/>
<% end %>
13. require 'rubygems'
require 'sequel'
require 'sinatra'
DB = Sequel.connect(....)
Model
class Entry < Sequel::Model
end
get '/' do
View
@recs = Entry.all
erb :index index.erb
end
<h1>Entry List</h1>
<% @recs.each do |r| %>
Controller <%= r.title %>
<br/>
<% end %>
14. require 'rubygems'
require 'sequel'
require 'sinatra'
DB = Sequel.connect(....)
Model
class Entry < Sequel::Model
end
get '/' do
View
@recs = Entry.all
erb :index index.erb
end
<h1>Entry List</h1>
R <% @recs.each do |r| %>
Controller <%= r.title %>
ou <br/>
te <% end %>
15. MVC - R
require 'rubygems'
require 'sequel'
require 'sinatra' Some Stuff
DB = Sequel.connect(....)
Model
class Entry < Sequel::Model
end
get '/' do
View
@recs = Entry.all
erb :index index.erb
end
<h1>Entry List</h1>
R <% @recs.each do |r| %>
Controller <%= r.title %>
ou <br/>
te <% end %>
17. require 'rubygems'
require 'sequel'
require 'sinatra' index.w2erb
require 'w2tags'
%h1 Entry List
require 'w2tags/sinatra_hook'
Auto Generate
Auto Generate
-each @recs;r
= r.title
DB = Sequel.connect(....)
%br/
class Entry < Sequel::Model
end
index.erb
get '/' do
@recs = Entry.all <h1>Entry List</h1>
erb :index <% @recs.each do |r| %>
end <%= r.title %>
<br/>
<% end %>
18. W2Tags
index.w2erb index.erb
%h1 Entry List <h1>Entry List</h1>
<% @recs.each do |r| %>
-each @recs;r
<%= r.title %>
= r.title
<br/>
%br/
<% end %>
See the flow
clearly
19. Sinatra
crud
Entry
Action Method 1 Method 2
List get '/entries'
New get '/entries/new' post '/entries/new'
Edit get '/entries/:id' put '/entries/:id'
Delete delete '/entries/:id'
20. Sinatra get '/entries' do
1
erb :entries_index
crud get '/entries/new' do
2
erb :entries_new
Entry post '/entries/new' do
redirect '/entries'
Action Method 1 Method 2 do
get '/entries/:id' 3
List get '/entries' erb :entries_edit
New get '/entries/new'put '/entries/:id' do
post '/entries/new'
redirect '/entries'
Edit get '/entries/:id' delete '/entries/:id' do
put '/entries/:id'
Delete delete '/entries'
redirect '/entries/:id'
32. rack
Ec = New EventContex
Ec.request = New Rack::Request
●
Ec.response = New Rack::Response
●
Array of
code-block
before Sinatra.application.filters all will be
When error do
Sinatra.application.error execute
or select .errors
Lookup Event
Sinatra.application.events
(post,delete,put,get,head) or
do/raise error not_found Array of
code-block
Code-block/render Execute first match
inside instance object of will be
Render EventContext execute
W2Tags/Erb
●
Haml, Sass
●
Builder wh/id-ruby
●