Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 26th, 2012  |  syntax: None  |  size: 1.10 KB  |  hits: 7  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. # app.rb
  2. require 'sinatra'
  3. require 'sinatra/sequel'
  4. require 'sass'
  5. require 'logger'
  6. require 'rack-flash'
  7.  
  8. enable :sessions
  9. use Rack::Flash
  10.  
  11. set :database, 'mysql://root:root@localhost/todo_app'
  12.  
  13. puts "the posts table doesn't exist" if !database.table_exists?('posts')
  14.  
  15. migration "create the posts table" do
  16.   database.create_table :posts do
  17.     primary_key :id
  18.     Integer     :priority
  19.     String      :title, :text => true
  20.     timestamp   :created_at, :null => false
  21.    
  22.     index :priority, :unique => true
  23.   end
  24. end
  25.  
  26. class Post < Sequel::Model
  27. end
  28.  
  29. get '/' do
  30.  @posts = Post.all
  31.  @notice = flash[:notice]
  32.  erb :index
  33. end
  34.  
  35. post '/create' do
  36.  if !params[:title].empty?
  37.   Post.insert(:title => params[:title])
  38.   flash[:notice] = "Todo Created"
  39.  else
  40.   flash[:notice] = "Todo needs title"
  41.  end
  42.  redirect '/'
  43. end
  44.  
  45. get '/sortList' do
  46.  params.each do |key, value|
  47.   puts key+": "+value
  48.  end
  49. end
  50.  
  51. get '/:id/delete' do
  52.  if params[:id]
  53.   @post = Post[params[:id]].delete
  54.   flash[:notice] = "Todo deleted"
  55.  else
  56.  end
  57.  redirect '/'
  58. end
  59.  
  60. get '/style.css' do
  61.  scss :style
  62. end