Loading vendor directories after the environment is set
[sinatra.git] / examples / todo / todo.rb
blob6be6ac0b4111762ea199b296d7130485e44f7187
1 $LOAD_PATH.unshift File.dirname(__FILE__) + '/../../lib'
2 require 'sinatra'
4 get '/' do
5   @items = session[:items] || []
6   haml <<-haml
7 %script window.document.getElementById('new_item').focus();
8 %h1 Sinatra's todo list
9 %ul
10   - @items.each_with_index do |item, index|
11     %li.item
12       %div
13         = item
14         %form{:action => "/" + index.to_s, :method => 'POST'}
15           %input{:type => 'hidden', :name => '_method', :value => 'DELETE'}
16           %input{:type => 'submit', :value => 'delete'}
17 %form{:action => '/clear', :method => 'POST'}
18   %input{:value => 'clear', :type => :submit}
19 %form{:action => '/', :method => 'POST'}
20   %input{:type => 'textbox', :name => :new_item, :id => 'new_item'}
21   %input{:type => 'submit'}
22   haml
23 end
25 post '/' do
26   (session[:items] ||= []) << params[:new_item] unless params[:new_item].to_s.strip.empty?
27   redirect '/'
28 end
30 post '/clear' do
31   session[:items].clear
32   redirect '/'
33 end
35 delete '/:id' do
36   session[:items].delete_at(params[:id].to_i)
37   redirect '/'
38 end